Pull to refresh

Comments 14

Кажется тут полегче метод, а как на сокетах настроить и так понятно. Все время раньше ставил через lighttpd.
Интереснее было бы увидеть сравнения производительности, php-cgi на сокетах и если вешать на порт.
насколько я помню, мускуль на сокетах работает быстрее на 5-10%. тут, думаю, так-же.
потому что раньше spawn-fcgi был ТОЛЬКО в комплекте с лайтом, сейчас его вынесли в одельный пакет, т.ч. можете не насиловать мозг ;)
Допустим не вижу смысла в необходимости ставить отдельный пакет spawn-fcgi, когда все работает и без него.
Данный подход Прост и достаточно быстр (используется успешно на продакшине).
А так как каждый процесс работает под пользователем, то и c правами все нормально, и для каждого пользователя можно свои настройка php.ini позволить определять.
насчот php-fpm послностью согласен — это гораздо более гибкий и эффективный инструмент.

Замечу автору статьи — следовало описать частично переменные что вы используете, например вот эти —
phpfcgid_children=«2»
phpfcgid_requests=«100»

Данные переменные критичны вобщето для сервера. ведь это количество активных процессов php-cgi и через сколько операций рестартнися сам php-chi процесс. Нехватка активных php-cgi приведет к серьезным тормозам для клиентов, и nginx еррор логи вам забьет ошибками невозможностью достучаться до бэкэнда.
Да, вы правы, тем кто не стал в даваться в детали, может быть стоило бы дописать комментарии.

На счет php-fpm, мне не знаком еще метод php-fpm, вы могли бы вкратце, описать его преимущества по сравнению с данным?
PHP-FPM (FastCGI Process Manager) is an alternative PHP FastCGI implementation with some additional features useful for sites of any size, especially busy sites.

These features include:

* advanced process management with graceful stop/start
* ability to start workers with different uid/gid/chroot/environment and different php.ini (replaces safe_mode)
* stdout & stderr logging
* emergency restart in case of accidental opcode cache destruction
* accelerated upload support
* «slowlog» support
* fastcgi_finish_request() — special function to finish request & flush all data while continuing to do something time-consuming (video converting, stats processing, etc.)
*… and more.
http://php-fpm.org/

Вольный перевод:

PHP-FPM (менеджер процессов FastCGI) — это альтернативная реализация PHP FastCGI с дополнительными плюшками для сайтов любого размера, особенно нагруженных сайтов.
Вот такие вот плюшки:
* продвинутый менеджер процессов с «мягкой» остановкой/запуском
* можно запускать воркеры под разными группами/юзерами/в chroot окружении и с разными php.ini (замена safe_mode)
* вывод логов в stdout & stderr
* аварийный рестарт случае случайного разрушительного opcode cache
* поддержка accelerated upload
* поддержка «медленного лога»
* fastcgi_finish_request() — спец. функция для завершения запроса & и «слива» всех данных, при этом продолжая выполнять какие-либо время-затратные операции (конвертирование видео, обработка статистики, etc.)
*… и много еще всякой всячины
Скажите честно, вы делали поиск по Хабру на предмет наличия подобной статьи?

Если нет, то поищите хотя бы по слову «nginx». Подобные настройки не один раз рассматривались в намного более развернутом виде.
Интересный вы человек GarretUA :)
Скажу честно, публикуя пост естественно посмотрел а то хабравчане не оценили бы такой подход)
Для собственного сравнения, попробуйте провести небольшое сравнение опубликованных подходов в похожих публикациях на хабре.
Признаться изначально не планировал раздувать статью, Статья всего лишь еще один пример настройки, для тех кому она буден интересно.

Пример по сути настолько прост что делать его «развернутым» не нашел серьезных причин, разве что скрип прокомментировать в некоторых местах.
Вы про то что здесь привязка через юникс сокеты, а не tcp? Вот например в статье про php-fpm привязка как раз через сокеты: habrahabr.ru/blogs/linux/78356/

Вообще претензий к вам не имею, так как это личный блог. Просто констатирую факт.

И то что вы называете «Связываем php и nginx» является просто скриптом для управления php-fastcgi.
по поводу связывания — так и есть)
в статье про php-fpm тоже используются сокеты, но пока еще не рассматривал и не сравнивал данный подход с php-fpm.
На сколько я понимаю php-fpm — это «надстройка» (как ее некоторые любят называть), которая в основе использует все те же юникс-сокеты, а значит они очень похоже.
Будет возможность, напишу тест, для сравнения — насколько существенна разница.
но полагаю что выигрыш может быть у немного больше (но это надо определить предметно)
Можно посмотреть на тест в блоге Scrill'a, в нем правда на рнр не нагружался по полной, что не дает полной картины.
Да, это альтернативная реализация. Похожи, даже я сказал бы практически идентичны(за исключением дополнительных полезных функций fpm'а). И использует те же самые сокеты что и fastcgi.
Sign up to leave a comment.

Articles