5 июл. 2013 г.

Пробег за месяц с лишним

Продолжение поста Купил новый автомобиль

Жаль, я не догадался сфоткать спидометр, когда там было "3 km" :) А страховик, когда фоткал пробег, спросил, а где пробег? Я говорю, вот, а он говорит, цифру 9 сразу и не заметил :)



Удалить из ридера некого Прочитать полностью...

2 июл. 2013 г.

Centos Nginx PHP-fpm error child 1111 exited on signal 11 (SIGSEGV) after 2222 seconds from start

Если проблема, вынесенная в заголовок, вас волнует "Centos Nginx PHP-fpm child 1111 exited on signal 11 (SIGSEGV) after 2222 seconds from start", то после долгого гугления вы найдете два совета:

  1. выслать дамп коре куда-то для исправления бага
  2. стучать в бубен потому что никто не знает, от чего срабатывает защита от "сегментейшен фолт"
Ни то ни второе мне не понравилось и я пошел своим путем - перфекционизм. Включил отображение всех ошибок ПХП и начал избавлять от ворнингов и нотисов. Когда их количество уменьшилось в 10-100 раз, то и падение PHP-fpm от заезда в чужой сегмент памяти исчезло. Для проверки вернул старый набор классов - SIGSEGV вернулось. Для справки - это шоп от RX-P. Инвайты по почте после собеседования.

UPD
Забыл указать, что:
PHP 5.4.16
Nginx 1.5.1
Centos 5.9

Удалить из ридера - данунах, некогда. Прочитать полностью...

29 июн. 2013 г.

Купил новый автомобиль.

Купил новый автомобиль потому что старый заебал ломаться. И ломаются всякие мелочи, которые стоят не дорого, а времени на ремонт тратится много: заехать проверить что сломалось, съездить за запчастями, записаться на ремонт, сидеть ждать пока они там починят, съездить за тем, что они забыли или у них кончилось. Через наделю приехать на перерегулировку или переремонт.

В общем купил новую тачку. Старую продал, ей было пять лет с хвостиком.

Удалить из ридера? Нееее не знаю. Прочитать полностью...

28 июн. 2013 г.

Список неадекватных регистраторов. resell.biz jogjacamp.com reviews

Список неадекватных регистраторов. Банят за хербалсы от маркетхэлсов и кэшбёрнерса:

  1. UK2 = http://www.resell.biz/ reviews забанили домен, на котором два года был редирект на аптеку. Без предупреждений.
  2. http://jogjacamp.com/ reviews - не отвечают на письма ни мне, ни реселлеру, забанили три домена за "спам", ни ссылок на инфорсмент, ни текста абузы, нихуя. Можно писать жалобу в ИКАНН, но я малограмотный, не умею короче.
  3. Cloud Group Limited (R123-LROR) reviews оказалось это тоже UK2. Забанили акк БЕЗ ПРЕДУПРЕЖДЕНИЯ по абузе на ХЕРБАЛЬНУЮ аптеку "трейдмарк наш поэтому удалите его упоминание с этого дора, а то мы убытки несем 100500 баксов в секунду, потому что на доре висит баннер конкурирующей таблетки от маркетхэлсов".
Только те, кого я проверил лично.

Прочитать полностью...

19 июн. 2013 г.

Using DKIM in Exim for Centos. Part 1.

Мои аптеки регулярно шлют мне письма от себя и из обратной связи от кутомеров и абузеров. В последнее время mail.ru и gmail.com повадились такие письма даже в спам не ложить, а отправлять обратно с пометкой 421 - "никого нет дома, приходите позже" или "550 - ты ёбаный спамер".

Хостеры ругаются, регистраторы банят домены, абузеры охуевают, кустомеры не покупают. После месячного заёбывания саппорта mail.ru и быстро покурив интернеты и второго после Бога, я выснил, что:
  1. почтовики не любят такую хуйню в заголовках как "X-PHP-Originating-Script: 500:class-phpmailer.php", устраняется в \etc\php.ini исправить mail.add_x_header = Off
  2. всем поголовно в ДНС добавить TXT  86400 v=spf1 ip4:111.222.33.44 a mx ~all (IP ясен хуй писать свой) 
  3. заставить exim (не менее 4.70, у меня 4.80.1) подписывать письма кровью, т.е. DKIM
 Создаём RSA-ключ (не менее, чем 1024 бита длиной, гугл меньше не примет) и парный ему общедоступный ключ. Прячем тайный ключ от посторонних:
mkdir /etc/pki/dkim
cd /etc/pki/dkim
openssl genrsa -out buy-viagra-online.com.key 1024
Generating RSA private key, 1024 bit long modulus
...................++++++
..++++++
e is 65537 (0x10001)
openssl rsa -in buy-viagra-online.com.key -pubout > buy-viagra-online.com.pub
chown exim:exim buy-viagra-online.com.key
chmod 640 buy-viagra-online.com.key
Получили buy-viagra-online.com.key 891 байт + buy-viagra-online.com.pub 272 байта
Создаём  DNS-запись для верификации DKIM
Берём публичный ключ, файло example.com.pub, который выглядит примерно так:
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3D......
......
......
YRhOq9VT1IuiNhULLQIDAQAB
-----END PUBLIC KEY-----
Удаляем комментарии (начинаются со знаков минуса), всё остальное разворачиваем в одну линию, и приписываем к началу строку
k=rsa; p=
Получим что-то вроде следующего:
k=rsa; p=MIGfMA0GCSqGS.....дохуя.букв......BwIDAQAB
Входим в интерфейс управления зоной для домена example.com и создаём запись вида
dkim._domainkey.buy-viagra-online.com 86400 IN TXT "k=rsa; p=MIGfMA0GCSqG....дохуя.букв....9VT1IuiNhULLQIDAQAB"
Где dkim — произвольная строка (допустимая в доменном имени). Важно: можно создать несколько DKIM-записей для одного и того же домена, если у них различаются селекторы.
Лезем в файл \etc\exim\exim.conf
# было так
remote_smtp:
driver = smtp
# стало так
DKIM_DOMAIN = ${lc:${domain:$h_from:}}
DKIM_KEY_FILE = /etc/pki/dkim/DKIM_DOMAIN.key
# OLD FUCKING ERROR DKIM_PRIVATE_KEY = ${if exists{DKIM_KEY_FILE}{DKIM_FILE}{0}}
DKIM_PRIVATE_KEY = ${if exists{DKIM_KEY_FILE}{DKIM_KEY_FILE}{0}}
remote_smtp:
driver = smtp
dkim_domain = DKIM_DOMAIN
dkim_selector = dkim
dkim_private_key = DKIM_PRIVATE_KEY
# я не вкурил, зачем это и заремил dkim_canon = relaxed
service exim restart
echo "body viagra 00 _`date`_" |mail -s "subject 123 from _`hostname`_" fucking.viagra.admin@gmail.com

Если всё нормально, то на жимыле в исходниках вы увидите в том числе и такое:
Received-SPF: pass (google.com: domain of root@buy-viagra-online.com designates 111.222.33.44 as permitted sender) client-ip=111.222.33.44; Authentication-Results: mx.google.com;
spf=pass (google.com: domain of root@buy-viagra-online.com designates 111.222.33.44 as permitted sender) smtp.mail=root@buy-viagra-online.com;
dkim=pass header.i=@buy-viagra-online.com
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=buy-viagra-online.com; s=dkim;
h=Date:From:Message-Id:Subject:To; bh=9DgPzmCC0hW....много-букв.....2wDEUnow=;
b=idayqjqxQbc....дохуя-букв.....LhhlE8jE3Y=;
Received: from root by buy-viagra-online.com with local (Exim 4.80.1)
(envelope-from )
------ 
story is based on http://boyandin.info/w/Exim/DKIM
PS
The dkim_canon = relaxed, sets the canonicalization method to use when signing messages. DKIM supports “simple” and “relaxed” algorithms- to understand the difference, see section 3.4 of the DKIM RFC.
PS
Once you’ve set everything up, you can test your DKIM (and SPF and SenderID, etc) install, by using the port25.com validation service:
If you wish to receive the results at the address in the “mail_from”, the sample message should be sent to check-auth@verifier.port25.com.
If you wish to receive the results at the address in the “from” header, the sample message should be sent to check-auth2@verifier.port25.com.
If you wish to receive the results at a different address from one of the addresses above, the address need to be added to the check-auth address. For example, to send the results to: jsmith@yourdomain.com the sample message should be sent to check-auth-jsmith=yourdomain.com@verifier.port25.com.

PS
Как ставить EXIM 4.80.1 на Centos 5.9 32 бит на VDS с 128 Mb RAM - это тема отдельной истории. Если будут интересующиеся - напишу. А вот как делать DKIM на шареде - ебитесь сами :) потому что ВДС.
Иди работай! Прочитать полностью...

16 июн. 2013 г.

Пошаговая оптимизация MySQL когда есть реальный трафик.

Тут я писал про оптимизацию ВДС за 9 баксов.

Пункт номер пять - оптимизация MySQL. Я долго не хотел этим заниматься, но пришлось. Как оказалось, там всё очень просто. По шагам:

  1. скачать/обновить phpmyadmin в виде архива папки тут
  2. распаковали у себя на компе, удалили все языки кроме русского и английского
  3. запаковали обратно в архив, который стал меньше в два раза
  4. не инсталлировать через yum или иное, а просто залить в корень вашего WWW и распаковать
  5. переименовать папку в абракадабру типа  pma2012 чтобы хакеры не долбили логин в админку
  6. настроить алиас в вэбсервере чтобы оно открывалось только по IP типа http://123.45.67.89/pma2012/
  7. не привязывать к домену чтобы хакеры не долбили логин в админку
  8. идем http://123.45.67.89/pma2012/setup/ ставим временно права 777 и 666 куда оно попросит.
  9. настроить авторизацию HTTP и всякое нужное, не забыть сохранить
  10. залогинились, идем в закладку "Состояние" (.../server_status.php...) - закладка "Все переменные состояния" (.../#PMAURL-2:server_status_variables.php...)
  11. ставим галку "Выводить только предупреждающие значения"
  12. читаем, думаем, гуглим, меняем
  13. переходим на закладку "Советчик" (.../#PMAURL-3:server_status_advisor.php...)
  14. читаем, думаем, гуглим, меняем внимательно, потому что часть советов Советчика повторяют советы из "Все переменные состояния"
  15. записываем прямо в my.cnf в комментах какой параметр чему был равен и из-за какого значения производительности мы его поменяли потому что...
  16. через сутки повторяем шаги 10 - 15. Делаем столько подходов, пока результат не станет нравится. У меня это заняло пять дней.
Предупреждения:
  • Из-за того, что внутри вордпресса на структуру запросов и индексацию таблиц мы влиять не можем, то не все параметры вам удастся оптимизировать. Я смирился с этим.
  • Включите лог медленных запросов, почитайте их, и выбросите/замените плагины, которые там очень часто появляются. Затем выключите лог медленных запросов.

Прочитать полностью...

15 июн. 2013 г.

Влияние скорости загрузки сайта на трафик с гугла

Есть у меня один сайт старенький. На ВДСе за 9 баксов он давно, потому что там траф. На этом же ВДС ещё есть около 20 сайтов, в том числе половина вордпрессы для сапы и линкфида. И приключился там рост трафика вообще и на этом сайте тоже. ВДС стал лагать, LA доходил до 10,  91.8%wa, в общем тормозило сильно.



На картинках один из сайтов на этом ВДС. Точки такие:
1 - гугл решил удвоить трафик, наверно какая-то панда подскочила
2 - начались проблемы у ВДС, т.к. другим сайтам тоже трафа привалило. И траф стал проседать.
3 - я начал оптимизации и траф стал расти.
4 - полгода назад я перестал ставить ссылки по-старому.
5 - я начал ставить ссылки по-новому.

Про оптимизацию.
  1. Выпилил все лишние демоны в Centos пока не осталось только самое нужное
  2. Более тщательно настроил конфиг энджинкса etc\nginx.conf
  3. Установил и настроил xcache для PHP
  4. Подобрал для себя etc\httpd\httpd.conf
    • StartServers 1
    • MinSpareServers 1
    • MaxSpareServers 3
    • ServerLimit 10
    • MaxClients 10
    • MaxRequestsPerChild 20
  5. MySQL, оказывается, при обновлении стал MariaDB, но мне пофиг, погуглил, почитал - нормально. Настроил etc\my.cnf
  6. Сделал почти всё, что просит гугл тут https://developers.google.com/speed/pagespeed/insights

Итого: LA уменьшился в 4 раза. Траф вы видите на картинке выше.

Удалять кого-то некогда сейчас Прочитать полностью...