суббота, 29 ноября 2008 г.

Свой сервер дома

Зачем, собственно, нужен сабж? Что он может дать?

Если Вы хотите всего-навсего разместить домашнюю страницу или блог, обмениваться с друзьями файлами по ftp, получить e-mail на своем домене, вероятно,
Вам будет проще воспользоваться услугами виртуального хостинга, в крайнем случае, заказать виртуальный выделенный сервер.

Если же Вы хотите гибкость настроек и системные ресурсы, за которые хостер попросит очень круглую сумму, и Вас не пугает что-то всегда гудящее и греющее воздух в Вашей квартире, Вы можете читать дальше :)
Аренда сервера с нормальными характеристиками может обойтись дороже 20 тысяч рублей в месяц, а покупка мощной и производительной 1U серверной системы может вообще выйти за рамки ста тысяч рублей.
Но за те же 20 тысяч рублей(только единоразово) можно собрать очень мощную систему, которую Вы поставите на антресоль, и которая Вам будет обходится только в плату за электроэнергию (в России, обычно, копейки) и за интернет-канал, который Вы все равно имеете дома.

Так же, дома удобнее проводить различные эксперементы, так как сервер рядом, и, если Вы что-то убьете, не нужно ждать ответа от технической поддержки хостера, а можно сразу подцепить монитор, и исправить то, что сломалось.

Сразу оговорюсь, что речь о сервере, который предназначен, в первую очередь, для доступа из внешней сети.
К серверу, который раздает контент/предоставляет web(irc и пр.) сервисы на несколько машин подъезда, предъявляются совсем другие требования :)

Не у всех есть финансовая возможность поставить свой сервер в Дата-Центр, зато, с проникновением широкополосных технологий доступа во всемирную Сеть, появляется возможность использовать сервер под web и другие задачи прямо из дома.
Сейчас это с высокой вероятностью доступно для каждого отдельно взятого жителя для Москвы и Санкт-Петербурга, но я уверена, что не смотря ни на какие кризисы, домашний канал, подходящий по характеристикам, очень скоро появится в каждом крупном Российском городе.

Какой нужен канал?



Прежде всего, он должен быть:

1. Широким, симметричным и безлимитным.
2. Провайдер должен выдавать статические IP
3. Не должно быть никакой фильтрации портов, как входящих, на сервер, так и исходящих, во внешний мир.
4. Желательно, что бы не было никаких VPN.
5. Если провайдер готов поправить Вам DNS-PTR запись, то это сразу снимет ряд проблем с исходящей с Вашего сервера почтой.

Теперь подробнее по каждому пункту.

1.а Симметричность



Большая часть домашних интернет-каналов обладают одной особенностью, которая не имеет почти никакого значения для пользователя, в основном занимающегося серфингом: их ширина (еще, говорят, скорость) различна в разных направлениях. Типовой домашний пользователь больше скачивает из интернета, чем "загружает" что-то на какой-то ресурс.

Например, такие московские провайдеры как Акадо и Стрим готовы дать очень широкую полосу down ("вниз", на закачку) но ширина полосы up ("вверх", на загрузку) даже на самых дорогих тарифных планах незначительно отличается от самых дешевых.

Несиммитричный канал ужасен для домашнего публичного сервера тем, что подавляющая часть трафика сервера будет идти вверх, и какой бы дорогой и крутой не был Ваш интернет-канал, он будет, фактически, простаивать. Ваши десятки мегабит down никто не заметит, зато все обратят внимание на тормоза при загрузке файлов с Вашего сервера.
Для сервера, можно сказать, меняется местами важность down и up.

Поэтому, например, каналы в Дата-Центрах, и тарифы для размещения серверов рассчитаны на то, что трафик up будет больше чем трафик down в несколько раз. В России в большинстве Дата-центров даже берут деньги за нарушения соотношения по трафику (обычно, входящий:исходящий 1:4, и часто есть ограничение на соотношение по зарубежному трафику).

Я ни разу не слышала, что интернет-провайдер может как-то наказать за нарушение соотношения (то есть, за то, что Вы больше будете отдавать трафика, чем скачивать), наоборот, думаю, ситуация будет меняться в нужную для нас сторону.

Очень многие домашние пользователи обмегиваются файлами с помощью p2p сетей, а в этих сетях для того, что бы хорошо качать, нужно иметь высокий рейтинг, который можно получить только раздавая контент. Уже сейчас почти все "продвинутые" пользователи за новым mp3-альбомом любимой группы пойдут, скореe в торренты, чем в магазин.
Провайдеры понимают тенденции и подстраиваются. Хотя, конечно, провайдеров могут ограничивать различные факторы: характеристики своего канала, технологии "последней мили"(у ADSL - операторов просто нет технической возможности сделать канал симметричным), и т.д.

1.б Безлимитность


По поводу безлимитности канала, очевидно, что если трафик будет оплачиваться, неожиданное резкое увеличение трафика может оказаться очень неприятным для Вашего кошелька.
Если Вы предоставляете какой-то публичный сервис, вряд ли у Вас получиться контролировать посетителей Вашего сервиса их трафик, за который Вы будете платить.
Даже если по Вашему тарифному плану, как это бывает обычно на лимитных тарифах, исходящий трафик бесплатен, даже если Вы запретите загружать пользователям сервиса файлы, входящий трафик будет всегда, к каким бы ухищрениям Вы не прибегали. Он будет составлять, примерно, седьмую-пятую часть от исходящего для web-сервера.

1.в Ширина

.
У Вас есть дешевый безлимитный симметричный канал? Отлично! Что? У него ширина 128kb/s? Поверьте, в этом случае Ваш сервис не будет никому нужен.

Всю вашу полосу забьет один пользователь сервиса с широкополосным доступом, который будет очень раздражен тем, что "кортинке медленна грузяццо". Который уйдет, и больше не вернется.
Мне жаль Вас огорчать, но, наверное, не стоит организовывать домашний сервер, если Ваш up всего 128kbs.
Я бы поставила минимальное значение в 512kbs.

Но 20 мегабит от Ethernet-провайдера были бы самым верным решением. В этом случае, посетители вряд ли бы заметили разницу в скорости работы сервиса, размещенного дома, и сервиса, размещенного в Дата-Центре.
В регионах таких каналов пока нет, но в Москве подключают уже и с большей полосой.

Отдельно хотела бы сказать про сетевую связность.
Во всемирной Сети иногда возникают так называемые "черные дыры", в которых пропадает трафик. К сожалению, хостинг-провайдеры, предоставляющий место для сервера в ДЦ, обычно борятся за связность активнее, чем интернет-провайдеры.

Стоит сразу иметь ввиду, что, если Ваш сайт не смогут смотреть посетители с, например, Камчатки, техническая поддержка провайдера может даже не принять Вашу заявку о связности к рассмотрению, так как Вы используете канал не по прямому назначению.

2. Статический IP-адрес


Некоторые провайдеры, например, Стрим, просто не выдают домашним пользователям статический IP-адрес.
Если у сервера постоянно меняется IP-адрес, пользователи Ваших сервисов просто не смогут на них попасть.
Вы можете попробовать выкрутиться с помощью DynDNS сервисов и даже разместить сайт таким примерно образом:

host h.shaggy-cat.ru
h.shaggy-cat.ru is an alias for shaggy-cat.dyndns.org.
shaggy-cat.dyndns.org has address 91.77.252.108


Здесь домен третьего уровня является CNAME записью, ссылающейся на хост бесплатного сервиса динамического DNS.
Ваш сервер время от времени подключается с помощью специальной программы на сервис DynDNS, который обновляет для Вашего домена значение А-записи.

Cервис dyndns.org бесплатно поддерживает только домены третьего уровня, поддомены доменов, принадлежащих сервису.
Если Вы готовы заплатить, сервис может предоставить Вам поддержку Вашего домена.

Когда у меня не было канала со статическим IP, я поступила проще :) Просто создала DNS CNAME запись.

Про настройку DynDNS в Redhat-like системах можно почитать тут.
Обычно, dyndns умеют ADSL-модемы и домашние дешевые хардварные роутеры.

Однако, поверьте, Вы сможете избежать огромного количества проблем, бессоных ночей, и граблей, на которые Вы наступите, если просто подключите стический IP адрес.
Любым способом: заплатив за него как за опцию тарифного плана, напившись с одмином Вашего провайдера, в конце концов, переспав с ним, если Вы девушка :)))
Все усилия, которые Вы предпримите для получения статического IP, себя окупят.
Мой личный опыт свидетельствует только о постоянных глюках DynDNS сервисов :(

Мне статический IP достался проще: я ушла к другому интернет-провайдеру. Стрим пока оставила как резервный линк, перейдя на самый дешевый тарифный план.

3. Фильтрация портов


Некоторые интернет-провайдеры, устав от жалоб завирусованных клиентов, просто отключают входящие порты для своих клиентов, через которые сетевые черви и злоумышленники могут поломать компьютер их клиента.
Часто в список портов попадают и порты, через которые Windows-системы обычно не троянят. Например, Стрим блокирует входящие порты: 80 (прощай веб-сервер!), 21(прощай ftp!), 25(прощай, почтовый mx-сервер!)

Понятно, что пользователи врядли оценят красоту URL Вашего сайта, если на него придется заходить каким-то таким образом:

http://pupkin.ru:8888

Что касается фильтрации исходящих портов, обычно, применяется фильтрация 25 порта, что бы массовый завирусованный Win-пользователь не спамил.
Это может доставить определенные неудобства, если Вы, например, хотите, что бы пользователи Ваших сервисов получали уведомления по почте.
В этом случае, Вы можете попробовать настроить локальный SMTP-сервер релеить почту через другой SMTP по такой, например, инструкции: тЫц.
Использовать провайдерский SMTP совсем не обязательно, Вы можете использовать свой обычный бесплатный ящик.

4. VPN и *nix системы.

Как много боли, страдания, отчаяния и полного разочарования кроется за этой фразой!!
Настройка VPN для стабильной работы, достаточной для сервера, была и остается огромной проблемой для новичка.
Даже при оптимальной настройке следуют учитывать то, что Ваше VPN-соединение будет падать время от времени, и нужно писать скрипты, которые будут опеределять падение канала, и передергивать соединение.

Даже если Вы собираетесь использовать сервер под Windows, Вас ждут те же самые проблемы со стабильностью канала, если не большие, связанные с фичами устройства сетевой подсистемы
этой операционки (я сама не использовала такой сервер, но один очень хороший человечек рассказывал жуткие вещи)

Есть возможность упростить настройку, используя хардварный роутер. Но стабильности тому же глючному poptop хардварный роутер не добавит ни капли.

В Москве Корбина Телеком переходит на L2TP VPN-соединение, говорят, что оно гораздо стабильнее.

Если сможете, подключайтесь к каналу, использующему авторизацию по MAC-адресу сетевой карты.
В Москве это, например, Су-29 Телеком, Qwerty, Акадо.
Впрочем, VPN не на столько плох, на сколько плох динамический IP-адрес. Если VPN не избежать, имейте ввиду, что poptop, вероятно, самый нестабильный.

5. Фильтрация портов

Если провайдер не фильтрует исходящие порты, то почта, напрямую отправленная с Вашего сервера, с высокой вероятностью попадет в spam-папку ящика назначения.
Это связано с тем, что практически весь спам в современном мире рассылается с затрояненных компьютеров домашних пользователей под управлением Windows. IP-адреса, выдаваемые таким пользователям, обычно имеют характерную DNS PTR-запись вида:

host 91.77.252.108
108.252.77.91.in-addr.arpa domain name pointer ppp91-77-252-108.pppoe.mtu-net.ru.


Достаточно просто пишется регулярное выражение(можете поискать примеры в Google), которое выделяет такие хосты среди "законных" SMTP-релеев.

Если Ваш провайдер исправит для Вашего IP PTR-запись, почта с Вашего сервера перестанет фильтроваться по этому критерию.

7. Железо сервера



Тут я затрудняюсь дать какие-то подробные и профессиональные советы, так как просто-напросто очень плохо разбираюсь в hardware, которое мне никогда не было интересно.

Общие рекомендации, которые, наверное, Вам и так очевидны:

- Чем больше ядер у процессора, тем лучше. Вообще, чем он быстрее, тем это правильнее. Только не стоит разгонять систему до космических скоростей, и тюнить сотней куллеров, вам ведь еще и спать ночью рядом с этим монстром придется...
Если Вы используете такие технологии виртуализации как Xen, KVM, VmWare, обратите внимание на процессоры с поддержкой технологий Intel VT или AMD Pacifica

- Чем больше ОЗУ, тем лучше. Особенно в случае использования Виртуализации.

- Навороченная видео-карта, как и вообще звуковая система Вам не нужны. Лучше брать материнскую плату с интегрированной видео, что бы свободный PCI-слот занять под, например, сетевую карту.

- UPS. Очень и очень желателен. Так же, как мне подсказал один хороший человечек, стоит активировать в BIOS опцию включения при подаче питания.

- "Стойка" засуньте сервер куда-нибудь далеко, что бы не мешал гудением, Вы его случайно не залили жидкостью, не уронили, и так далее.
Лучше на антресоль или в кладовку. Только учтите, что: а) пыль это плохо; б) Летом, в связи с глобальным потеплением ;) в маленькой, душной конуре он может просто перегреться и выключиться :(
Впрочем, проблемы с перегревом возможны и в Дата-центрах. .masterhost вот чуть не наградили Антипримией Рунета за оригинальную технологию охлаждения серверов сухим льдом :)))

8. Софт



Это самое главное. То, без чего не будет сервера как такового. Можно умудриться организовать плпулярный сервис на динамическом айпи с фильтрацией портов и старом-старом Пентиуме-2, если есть идея, и конкретная программная реализация.
Наоборот, можно вбухать время и деньги, и получить мертво стоящую железку.

Я использую на своем HomeServer промышленную технологию виртуализации OpenVZ. О ней можно почитать тут и тут

Использую из-за легкости эксперементов (новый контейнер с почти любым Linux-дистрибутивом создается за две-три секунды), отсуствии потерь на виртуализацию, и по тому, что считаю технологию очень прогрессивной.

Впрочем, OpenVZ выходит за рамки этого поста, надеюсь, когда-нибудь соберусь и расскажу о ней и ее использовании, так же как и сейчас, на пальцах.

Я рекомендую использовать какую-либо технологию виртуализации, так как Вы, возможно, захотите держать на своем сервере множество различных сервисов, каждый со своими требованиями к программной среде(иногда не совместимыми с требованиями другого сервиса, который Вы бы так же хотели использовать), предоставляемым ресурсам, с разным отношением разработчиков к безопасности своего продукта.

Используя виртуализацию на домашнем сервере, Вы получите ту самую консолидацию, и дом, в конце концов, не превратится в филиал дата-центра.
Вам хватит одного, максимум, двух мощных компьюетеров для решения любых задач на виртуальных машинах, размещенных на сервере.

Советую обратить внимание на следующие технологии:

а) Xen
б) KVM
в) OpenVZ
г) _серверные_ варианты VmWare

Крайне не рекомендую использовать такие типично-десктопные вещи, как VirtualBOX, VmWare Workstation

Подробное описание этих технологий так же выходит за рамки статьи, выскажу только общие соображения.

Наиболее "модным" решением для виртуализации сейчас является VmWare. Популярность обсуловлена простотой настройки, и администрирования.
Однако, VmWare не лишина недостатков. Главный из которых заключается в том, что наиболее мощный вариант VMware ESX Server стоит денег (бесплатный VMware Server смотрится очень тускло рядом Xen или OpenVZ), так же, я бы отметила не самую лучшую поддержку оборудования, и большие потери производительности при виртуализации.
Думаю, VmWare можно назвать попсовым решением, если Вы хотите "все сразу", и согласны мириться с некоторой негибкостью решения, наверное, лучше VmWare для Вас нет ничего.

KVM является, возможно, самой перспективной технологией из всех перечисленных, учитывая то, какое внимание ему уделяет RedHat(тЫц) и динамику самого RedHat. Однако, сейчас технология явно остает по числу фич от своих конкурентов.

Xen Очень интересная и мощная технология. Существует сайт с большим числом русских статей про Xen. Когда я выбирала программную платформу, долго колебалась между Xen и OpenVZ. Выбрала, как уже писала выше, OpenVZ

OpenVZ Главные плюсы в том, что технология, как я уже писала выше, работает практически без потерь производительности, что существуют десятки шаблонов VPS с самым разным ПО и разными дистрибутивами, которые могут быть развернуты за мгновения.
Очень удобно для эксперементов :)
Самый главный минус заключается в том, что виртуализируются только Linux-дистрибутивы

Этот абзац не отражает и доли того, чем для меня стала OpenVZ. Очень-очень надеюсь, что соберусь и напишу статью по использованию этой системы.

Если Вы планируете использовать несколько виртуальных серверов, а внешний IP-адрес всего один(так скорей всего и будет в случае с домашним сервером), Вы можете давать виртуальным машинам IP-адреса из диапазонов, предназначенных для локальных сетей, и пробрасывать на виртуальные машины порты с внешнего IP (Iptables DNAT в Linux).

Если Вы планируете больше одного web-сервера, то проброс портов не поможет. Я выкрутилась с помощью акселерирующего http-реверс-прокси nginx на отдельной VPS.
Этот nginx проксирует http-соединения к одной, либо другой VPS. Может быть, и об этом когда-нибудь расскажу :))

З.Ы. Перепечатка разрешена только с указанием ссылки на оригинал этой заметки.

Удачной настройки домашнего сервера, и... меньше возитесь с компьюетрами, чаще гуляйте, ходите в музей/театр/кино/в гости/ездийте в путешествия!

пятница, 28 ноября 2008 г.

Новости на ленте.ру, которые позабавили

Самое ужасное, и в месте с тем, забавное будет, если Саркози возьмет и умрет. Причем даже если умрет просто по трагическому совпадению, думаю, это станет причиной для появления моды на черную магию.

Чем бы эта история не закончилась, она меня покоробила. И очень сильно. IMHO, Европейцы идут все-таки куда-то не туда.
При всей моей симпатии к либеральности и открытости их общества, такие на всю голову больные решения вызывают оторопь. Иногда жить в не совсем правовом государстве проще :)

У нас бы такая книжка издаться не смогла бы никогда. А если бы каким-то чудом книжица с куклой ВВП и иголочками все-таки бы вышла, то очень скоро весь тираж бы изъяли, а в авторов в самих бы стали вставлять иголки :)))

Плохо это или хорошо? Что бы не обсуждали на ЛОРах/опеннетах по поводу последствий применения закона, озвученного в новости, победа свободного софта, это, конечно, прекрасно, а вот то, что мало кто из жителей Нашего Необъятного Рунета покупает музыку и фильмы, это факт.

Хотя в новости на ленте о мультимедиа-контенте ни слова, гарантий того, что через некоторое время
правоохранители не получат право порыться на честно купленном ноуте с Убунтой в поисках скаченного с торрентов мультимедиа, нет никаких.

Сейчас, когда гуляешь с любимым человеком, его (и за одно, тебя) могут в любой момент проверить на пиво, а завтра....

Надеюсь, и первая и вторая новости не разовьются ни во что, кроме курьеза и еще одного закона, который никто и никогда не исполняет.

Вот эта новость гораздо позитивнее :)
Вот этим, наверное, Запад и лучше России. Не могу себе представить нашу доблестную милицию с мешком тапочков, а-ля дед-мороз, через плечо :)

На последок, как Вам такой фейверк?
У кого-то это вызовет ассоциации с бездарным "Армагедонном", или со "Столкновением с бездной"(кстати, этот фильм, как мне кажется, очень удачный, интересный, теплый, и... пугающе реалистичный), но у меня ролик вызвал ассоциации с приближающимся Новым Годом!

Может быть, еще рано, но я пожелаю всем уже сейчас больше счастья, радости, удачи. Всем, кроме Кризиса.
Кризису желаю, что бы он сдох :)

Если Вы прочитаете эти строчки, предлагаю Вам, когда Вы сядите за новогодний стол, пожелать ему того же!

понедельник, 24 ноября 2008 г.

Котенок

Интересно, а какой этот мужик, когда не напьется?

Попросил ли он "посидеть" из раскаяния, или из боязни, что просто сопьется?
К сожалению, не нашла по ссылке оригинальную статью.

Журналюги с lenta.ru почему-то ни слова не написали про маму ребенка.
Что она делала, когда этот пьяный идиот заставил дочку выбросить котенка,
вообще, есть ли она в природе, или ребенок на два месяца будет жить,
в лучшем случае, у родственников?

Надеюсь, что мама все-таки есть, это именно она подала заявление в милицию,
и она подумает эти два месяца, а нужен ли ей с ее дочкой такой папа?

воскресенье, 23 ноября 2008 г.

How-To по настройке счетчика Spylog для Gallery2

Возможно, кому-нибудь покажется полезной информация по настройке SpyLog'овского счетчика в Gallery2. How-to, наверное, можно применить вообще для любого счетчика или баннера.

Инструкция с официального сайта Gallery2 для Google Analytics почему-то так и не заработала (допускаю, что кривые руки).
Я пыталась переделать счетчик по инструкциям с этой страницы


Решение нашлось на русском форуме Gallery2: тЫц.

Итак:

1. Идем в наш DocoomentRoot, куда установлена Gallery2, например:

cd /var/www/vhosts/*****.ru/httpdocs/

По-умолчанию, Gallery2 ставит себя в поддиректорию DocumentRoot, в директорию gallery2
Следует иметь ввиду, что абсолютные пути Gallery считает именно относительно последнейдиректории.
У меня Gallery2 стоит сразу в DocumentRoot


2. Заходим в директорию themes, потом в директорию нашей текущей темы (например, Matrix), а потом в директорию templates темы:

cd themes/matrix/templates/

3. В текущем каталоге делаем директорию local и копируем в нее файл темы, после чего, открываем скопированный файл в своем любимом текстовом редакторе(я превыкла к joe):

mkdir local
cp -p theme.tpl local/
cd local/
joe theme.tpl


Находим строчки <div id="gsFooter"> если Вы хотите расположить счетчик внизу страницы, или <div id="gsHeader"> если вверху (а такие ресурсы бывают ;)?) и вставляем Gallery-тег:

{g->theme include=spylog.tpl}

Здесь "spylog.tpl" файл с кодом счетчика в текущей директории. Вместо "spylog.tpl" Вы можете указать полный путь до Вашего счетчика так, как описано в пункте 1.

4.
Сохраняем именения, создаем файл со счетчиком:

joe spylog.tpl

В файл нужно скопировать код счетчика без каких-либо изменений так, как его предоставляет Spylog.

5. После сохранения файла, идем (в русской версии Gallery2):

Администрирование > Обслуживание > Выполнить (рядом с Очистка кэша шаблона)

6. Проверяем, что все работает в кабинете SpyLog.

Примечание. Если хостер не предоставляет ssh-доступ, понятно, файлы необходимо отредактировать локально, на своей рабочей станции, и скопировать в директорию local по ftp (с помощью ftp же можно сделать саму эту директорию).