Сюда обычно чего-то пишут. Но меня ломает...

Nginx + Php-fpm на Centos

Этот пост больше для себя, чтобы не забыть, но кому то он может тоже оказаться полезным.

Задача стояла собрать на недорогом VDS конструкцию, не сильно потребляющую память под довольно наргуженную веб-приладу. Апач отпадал даже на бэкенде потому как очень уж он прожорлив. К тому же, в силу специфики моей прилады в бэкенде он тоже разрастался, хотя и не так сильно.

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

Нужно сказать, что такая связка в зависимости от типа приложения (CMS) может давать где-то от 1.5 до 5 раз экономии памяти по сравнению с апачем и примерно во столько же раз быстрее работать. Но есть ограничения - большинство CMS по сути писаны под апач и их установка на “неродной” сервер требует некоторых танцев с бубном. Плюс Nginx не поддерживает некоторые фичи, которые есть в апаче (например .htaccess), опять же нужны ручные правки конфига.  Поэтому область применения “чистого” Nginx ограничена и большее распространение получила связка Nginx-фронтенд <-> Apache-бэкенд. Как ставить  ее на Cpanel/WHM я уже как то писал.

Тем не менее, бенифиты конфигурации очень значительны. Как же она собирается.

В качестве базовых были взяты две очень толковых статьи - эта и эта.

Для начала сносим апач, он нам больше не понадобится

rpm -e httpd –nodeps

тем же образом другие ненужные вам пакеты, я например вынес mysql, почту, спамассасин и еще какой то мусор.

Заводим юзера и группу от которой будет работать веб-сервер

groupadd www-data
useradd -g www-data www-data

Ставим nginx  по этому мануалу. Если вам нужен перл, надо не забыть добавить соответствующий ключ при сборке.
Подкладываем этот
конфиг в /usr/nginx/conf/nginx.conf
Меняем юзера nobody на www-data
Проверяем (service nginx start и смотрим на страничку “Welcome to Nginx”) - работает? Тогда раскомментируем кусок конфига про  php и идем дальше.

Теперь по этому мануалу тупым копи-пастом ничего не выдумывая ставим php-fpm.
Поставили - подкладываем конфиги php.ini и php-fpm.conf в /etc
В конфиге  php-fpm.conf меняем юзера nobody на www-data,  увеличиваем max_children (значение подбирается экспериментально под имеющуюся память, у меня 100). Если прилада имеет свойство течь (кривые скрипты и пр.), уменьшаем max_requests до сотни-другой.

Я также в обеих конфигах поменял listen address c /tmp/php-fpm.sock на 127.0.0.1:9000, на unix сокете почему-то не заработало, разбираться было лень.

Вот пожалуй и все.

Хостинг для чайников

Ахтунг! Статья из раздела Ликбез. Гуру сайтостроения она противопоказана.

Начну с напоминания того, что серия “Для чайников” в оригинале называется “For Dummies”. Кто такие Dummies, вы наверно знаете. Поэтому надо стремиться к тому, чтобы материалы раздела как можно быстрее переставали быть интересными. Ну да я не о том.

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

Небольшой анонс

В ближайшие день-два я планирую запустить еще несколько ресурсов:

yogaim.com - англоязычный блог про йогу. Хочу попробовать писать на английском. Ибо надо. Писать буду сам, на блоге будет DoFollow и премодерация каментов

tubezx.com -сайт лидирующей американской компании по производству  hot tubs (это маленькие бассейны с горячей водой). Про платформу пока не скажу, но там точно будут DoFollow каменты ;)

Кроме того нужно упомянуть еще про this first aid kit online store. Потому что надо ;)

Тонкости работы с Daddy’шкой

Кто работал с дядюшкой (GoDaddy) знают особенности этого регистратора, но многих сунувшихся туда первый раз дядюшка сильно отпугивает. Навалено там всего - с первого раза хрен разберешься. Но при правильном подходе дядюшка незаменим.

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

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

Вторая интересная вещь - домены в зоне .info Ценник на регистрацию составляет всего бакс за первый год. Но тут есть два нюанса. Первый - все последующие годы домен будет стоить также, как и все остальные - регулярный прайс что-то около $10. Ну и загнать .info в индекс яндекса - задача не для слабонервных. Этот домен, например, до сих пор нормально не индексируется, а прошло уже больше трех месяцев. Хотя пара говносайтов на доменах .ru попали в индекс в первый же ап.  В индекс он, конечно, попадет, но сколько пройдет времени? Если хотите быстро получить траф с яндекса, .info - не самый лучший вариант.

Ну и основное назначение - регистрация .com .net и прочих англоязычных зон. На самом деле и тут у дядюшки почти самый низкий ценник. На первый взляд, можно найти регистратора, который дает ценник вроде бы на 10-15% дешевле. Но у дядюшки есть купоны ;) Поищите актуальные в гугле по словам goadddy coupon и вы получите как раз те самые 15% скидки.

Кроме того, у дядюшки можно покопаться в помойке. Имеется ввиду аукцион подержанных доменов в части предложений стоимостью $5. За $5 + стоимость регистрации можно приобрести домен с историей, а может быть и с базовыми пузомерками (PR 1-3 и иногда встречаются домены с тиц 10). Интересно при этом то, что домен не освобождается, а перерегистрируется  на вас. Это позволяет избежать сброса пузомерок и получить домен с какой-никакой историей. Регистрация в  аукционной системе стоит $5 в год, если регистрацию не произвести дядюшка будет страшно ругаться с невнятной ошибкой. Можно, конечно, купить и кое-что подороже, но сначала убедитесь, что вы понимаете, что делаете.

ClickUnder - имеет ли смысл?

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

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

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

Больше месяца там болтался баннер фотостраны, на который кликали жалкие 20-30 человек в день, из них регистрировалось 1-2. Вчера решил таки поставить кликандер, посмотреть что же получится. Пришлось изрядно повозиться, прикручивая кликандерный скрипт к Glype proxy, но в итоге к трем часам ночи я его таки победил.

Итог меня слегка удивил - на партнерку за день слилось 640 уников (хотя кликандер показывается 1 раз в день, 600 как-то маловато, но речь не об этом), при этом зарегистрировалось 13 человек. Получается, что ctr на кликандере составляет примерно 2%, а на баннере чуть больше пяти. То есть при росте объема трафа в 25-30 раз мы получаем снижение конверта только в 2.5 раза, из чего неизбежно следует вывод, что кликандер в десять раз эффективнее баннера.

Напомню, что я сам никогда нигде не регистрируюсь по такой рекламе и вообще тихо ее ненавижу. Все таки, я не понимаю этих людей…

Aнализ нагрузки веб-сервера

Колдунства для анализа нагрузки веб-сервера. Чел писал для борьбы с ДДОСами, но пригодится и в более мирных случаях.

Число процессов Apache:
ps aux | grep httpd |wc -l

Число коннектов на 80 порт:
netstat -na | grep :80 | wc -l

То же, в статусе SYN
netstat -na | grep :80 | grep syn

Пример SYN-флуда:
netstat -na | grep :80 | grep SYN | wc -l 767

Посмотреть много ли разных IP:
netstat -na | grep :80 | grep SYN | sort -u | more

На какой домен чаще всего идут запросы:
tcpdump -npi eth0 port domain

Статус Apache:
apachectl status

Посмотреть откуда IP:
whois xxx.xxx.xxx.xxx

или
jwhois xxx.xxx.xxx.xxx

С какого IP сколько запросов:
netstat -na | grep :80 | sort | uniq -c | sort -nr | more

DoFollow

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