понедельник

 

О пользе nginx

Вот уже болльше 2-х лет я пользуюсь хостингом от FirstVDS и MiniVDS, причем для моих небольших нужд вполне хватает самых дешевых тарифов, на которых дается всего 64 Мб RAM. Свободной памяти у меня практически никогда не бывает, но все сервисы стабильно работают.

Я всерьез задумался, а есть ли смысл включать nginx. Кроме статики, у меня еще есть куча скриптов; причем php работает как модуль apache. Да и сам nginx тоже будет висеть в памяти и есть ресурсы.

Удивительно, но после того, как я у себя включил nginx, apache стал есть меньше памяти. И как выяснилось, это заслуга nginx.

Зачастую апач генерит страницу быстрее, чем отдает ее клиенту; особенно, если клиент имеет не очень хороший канал. И пока он ее отдает, процесс висит в памяти и жрет системные ресурсы. Вот тут и приходит на помощь nginx, который работает как прокси. Он мухой забирает все, что сгенерил апач, и отдает все это добро клиенту. Апач же, законив свою грязную работу, спокойно умирает.

Включить nginx в панели ISPmanager можно одним кликом мыши, и уже через пару-тройку минут можно будет видеть результат. У меня, правда, процесс не совсем корректно отработал, nginx стартовал, а апаче почему-то нет. Пришлось апач запустить вручную. И еще, если автоматически созданные поддомены сделаны вручную через mod_rewrite, возможно некорректное отоборажение картинок на сабах. В этом случае придется вручную править правила раздачи картинок с поддоменов для nginx

Ярлыки: ,


пятница

 

Blogger на своем домене и настройки firewall

Платформа Blogger
Платформа Blogger умеет вести блоги не только на blogspot.com, но и на своих доменах. Публикация постов представляет собой заливку готовых html-файлов на хостинг с помощью FTP или SFTP. А чтобы отсечь любителей подбирать пароли FTP, Blogger опубликовал IP-адреса серверов, с которых он может проводить публикацию постов:

66.102.15.83
216.34.7.186
64.233.166.192-207
64.233.178.192-207

Т.е. достаточно в firewall.conf дописать всего 5 строчек, чтобы отсечь брутфорсеров паролей:

add allow tcp from 66.102.15.83 to me 21
add allow tcp from 216.34.7.186 to me 21
add allow tcp from 64.233.166.192/28 to me 21
add allow tcp from 64.233.178.192/28 to me 21
add reset tcp from any to me 21

Ярлыки: ,


вторник

 

Хостинг для хранения бэкапов

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

Но в принципе, бесплатный хостинг может быть полезен для хранения бэкапов, так же, как и файловая система gmail.

Как вариант, можно посмотреть в сторону 000webhost. Вот основные фичи этого хостинга:

  • дают свой домен 3-го уровня, или можно приспособить свой
  • 250 Мб на диске
  • PHP и MySQL, доступ по ftp
  • cPanel
  • 100 Гб трафика в месяц


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

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

Ярлыки:


понедельник

 

Лучший хостинг в своем классе. Небольшой обзор VDS-хостингов, в сторону которых стоит посмотреть.

Не ожидал я, что uptime моего VDS превысит 90 дней. Однако, смотрите сами:
VDS Uptime / Аптайм VDS
В общем-то, для темплейта "Современный софт" и операционки FreeBSD для VDS это очень хороший показатель. Если бы у меня была бы голая фря, на которую бы я ставил только нужный мне софт, такой аптайм был бы вполне нормальным. Но для площадки, где хостер своевременно вносит патчи на установленный софт, такой аптайм является на удивление хорошим.

Очень порадовала цена этого хостинга, всего 5.95 USD за месяц. Пользуюсь их услугами со дня открытия, и серьезных замечаний к их работе у меня нет. Особой привлекательностью является американский айпишник у VDS, что позволяет легко превратить его в прокси-сервер (SOCKS5) для своих нужд. А тем, кто работает такими партнерками, как COPEAC или AffiliateCube, не надо объяснять, зачем нужен полноценный американский IP-адрес.

Все те же самые вкусности (кроме американского IP-адреса) можно получить и у FirstVDS. Но там айпишик будет московский, который тоже можно использовать для SEO-шных целей. Например, с помощью моего сервиса просмотра сайтов с московского айпи удобно смотреть выдачу яндекса/рамблера (если вы находитесь не в Москве и под рукой нет московской проски). Цена такого хостинга составит 149 рублей в месяц.

Да, забыл добавить. Все, кто зарегистрируются по моим ссылкам, получат скидку в 25% на первый месяц обслуживания.

Ярлыки:


среда

 

Как автоматически создавать поддомены

Задача: при обращении к поддомену сервер должен отдавать контент из соответствующей поддиректории для заданного VirtualHost.

Есть 2 способа решения задачи, и какой из них лучше – решайте сами.
В любом случае, сначала надо настроить WildCard DNS на домене, иначе ничего работать не будет.

Если Ваш проект хостится у firstvds или у minivds, то при добавлении домена на Ваш аккаунт файл зоны будет выглядеть примерно так:


$TTL 3600
domain.com. IN SOA ns1.minivds.com. root.mylogin.minivds.com. (2007041702 10800 3600 604800 86400)
;
domain.com. IN NS ns1.minivds.com.
domain.com. IN NS ns2.minivds.com.
domain.com. IN MX 10 mail
domain.com. IN MX 20 mail
domain.com. IN A XXX.YYY.ZZZ.WWW
www IN A XXX.YYY.ZZZ.WWW
ftp IN A XXX.YYY.ZZZ.WWW
mail IN A XXX.YYY.ZZZ.WWW
smtp IN A XXX.YYY.ZZZ.WWW
pop IN A XXX.YYY.ZZZ.WWW
domain.com. IN TXT "v=spf1 a mx ~all"


Чтобы включить WildCard DNS, достаточно в файл зоны добавить всего одну строчку и поменять цифры в serial number зоны. После исправлений файл доменной зоны будет выглядеть так:


$TTL 3600
domain.com. IN SOA ns1.minivds.com. root.mylogin.minivds.com. (2007041703 10800 3600 604800 86400)
;
domain.com. IN NS ns1.minivds.com.
domain.com. IN NS ns2.minivds.com.
domain.com. IN MX 10 mail
domain.com. IN MX 20 mail
domain.com. IN A XXX.YYY.ZZZ.WWW
www IN A XXX.YYY.ZZZ.WWW
ftp IN A XXX.YYY.ZZZ.WWW
mail IN A XXX.YYY.ZZZ.WWW
smtp IN A XXX.YYY.ZZZ.WWW
pop IN A XXX.YYY.ZZZ.WWW
* IN A XXX.YYY.ZZZ.WWW
domain.com. IN TXT "v=spf1 a mx ~all"


Через некоторое время можно попробовать пингануть домены abc.domain.com, asfwsegws.domain.com – доменное имя 3-го уровня должно определяться с тем же IP-адресом, что и доменное имя 2-го уровня.
Вот теперь можно переходить к настройке сабдоменов.

Способ номер 1: вносим изменения в httpd.conf
Выглядит это примерно так:


RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.domain.com
RewriteCond %{HTTP_HOST} !^cgi-bin\.domain\.com$ # запрещаем перенаправление для cgi-bin
RewriteCond %{HTTP_HOST} ^(www\.)?(([^\.]+)\.){1}domain.com$
RewriteCond /home/domain/data/www/domain.com/%3 -d
RewriteRule ^/(.*) /%3/$1


Перезапускаем apache и все – любая поддиректория, созданная в /home/domain/data/www/domain.com/ будет доступна как поддомен. Это самый правильный вариант создания поддоменов.

Но такой способ не будет работать на виртуалхостингах, поскольку доступ пользователю к httpd.conf никто не даст.

Способ номер 2: поддомены через .htaccess:


RewriteEngine on
RewriteCond %{HTTP_HOST} ^subdomain1.domain.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.subdomain1.domain.com$
RewriteRule ^(.*)$ http://www.domain.com/subdomain1/ [R=301,L]
RewriteCond %{HTTP_HOST} ^subdomain2.domain.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.subdomain2.domain.com$
RewriteRule ^(.*)$ http://www.domain.com/subdomain2/ [R=301,L]

В этом случае при обращении к subdomain1.domain.com или к www.subdomain1.domain.com пользователь будет перенаправлен на URL http://www.domain.com/subdomain1/ и он это заметит.

Ярлыки: ,


понедельник

 

Палю тему: экономим на пространстве для бэкапа, используя Gmail File System

Многие владельцы серверов/VDS ломают голову, как же бэкапить свои бесценные данные. Большинство хостеров, например, FirstVDS или MiniVDS предлагают место для бэкапа по стоимости порядка 2 доллара США за гигабайт в месяц, что по-моему, довольно много. Одним из вариантов, который бы позволял хранить бэкапы, является использование почтового сервиса Google Mail (gmail), который в настоящее время предлагает около 4 Гб дискового пространства под почту - совершенно бесплатно.
Самый просто вариант хранения бэкапов - это пересылка архивов по почте; но есть как минимум еще один вариант - использование Gmail Filesystem. Судя по описанию, эта файловая система как раз и построена на обмене сообщениями с почтовым сервером gmail.
Все, что нужно для установки файловой системы - Python версии не ниже 2.3; должен быть установлен FUSE не ниже 2-й версии (скачать можно здесь, если еще он не установлен).
Еще понадобится Python FUSE bindings (взять можно отсюда), libgmail и собственно, gmailfs.
После установки всего этого добра, можно поправить файл /etc/fstab для автоматического монтирования этой файловой системы:

/usr/local/bin/gmailfs.py /path/of/mount/point gmailfs noauto,username=gmailuser, password=gmailpass, fsname=zOlRRa

или монтировать ее руками:
mount -t gmailfs /usr/local/bin/gmailfs.py /path/of/mount/point -o username=gmailuser,password=gmailpass,fsname=zOlRRa
Если вы на свой сервер пускаете еще и постороних юзеров, то этот метод будет небезопасен - поскольку этот юзер будет видеть логин и пароль в /etc/fstab.
Но эту проблему можно разрулить прописыванием соответствующих настроек в файле /etc/gmailfs.conf и запретом чтения этого файла остальным юзерам.
Вот несколько хинтов по настройке:
1. При удалении файлов из GmailFS, соответствующие им письма не удаляются физически, а попадают в Gmail Trash. Так что их придется периодически чистить руками (libgmail пока не умеет удалять сообщения).
2. Если не дай Бог залезть в этот акк Gmail почтовым клиентом, то все это добро свалится по почте. Поэтому крайне рекомендуется создать фильтр в акке Gmail, который бы архивировал эти сообщения и убирал из inbox.

Ярлыки: