Существует сервер под Debian 6, который не должен надолго упасть. На нем есть nginx и php-cgi, запущенный через start-stop-daemon, таким образом создан FastCGI.
Но когда появился большой трафик (примерно 2-3 000 одновременных соединений), появилась проблема ошибки 502, которая возникает даже не смотря на небольшую нагрузку на процессор и память.
Изученный материал подсказал, что PHP-FPM гораздо лучше справляется с задачей, но как его поставить, чтобы не нарушить существующую экосистему?
Известно, что он есть на dotdeb.org, но его я применять опасаюсь из-за проблем с несовместимостью пакетов — при попытке поставить что-нибудь для PHP он выдает запрос на удаление важных вещей.
Можно ли как-то по-другому установить php5-fpm на Debian 6?
UPD, 2012-05-06. Было много сделано для решения этой проблемы. Сейчас php5-fpm установлен, процент ошибки 502 близок к нулю, в комментариях можно посмотреть пути решения проблемы.
Дополнительно можно сказать, что можно установить php5-fpm и новую версию nginx из репозиториев unstable и testing:
#UNSTABLE
deb http://ftp.ru.debian.org/debian/ unstable main non-free contrib
deb-src http://ftp.ru.debian.org/debian/ unstable main non-free contrib
#TESTING
deb http://ftp.ru.debian.org/debian/ testing main non-free contrib
deb-src http://ftp.ru.debian.org/debian/ testing main non-free contrib
Чтобы исключить ошибку 502, нужно подобрать оптимальные параметры php5-fpm и оптимизировать приложение. К примеру, в моем и еще одном случае помогло исключение сессий или переопределение стандартного механизма с исключением записи их в файлы.
Также PHP 5.4 работает заметно быстрее, и php5-fpm справляется с помощью меньшего количества процессов.