Re: nginx (Windows XP) + php-cgi.exe - одновременно обрабатывает только один запрос - остальные ждут
iWarior
nginx-forum на nginx.us
Чт Июн 3 19:11:08 MSD 2010
Спасибо всем за ответы :)
[i]Потому что на не-windows, php-cgi с запускает (столько, сколько
записано в переменной окружения PHP_FCGI_CHILDREN) детей, которые
обрабатывают запросы. На windows php-cgi эту переменную игнорирует и
работает в однопоточном режиме.[/i]
увы, оказалось, что это чистая правда... =(
[i]"прибивает мёртвые бекенды" — фантазия. Было бы здорово, но увы, нет.
nginx не управляет бекендами.[/i]
Говоря "прибивает" я имею ввиду, что он перестаёт к ним обращаться в дальнейшем, наткнувшись 1 или несколько раз на не отвечающий (в зависимости от настроек).
[i]У вас была проблема с настройкой nginx + несколько отдельных php-cgi
бекендов?[/i]
возможно, я же не спорю.
[i]Так надо было именно с этой проблемой и обращаться, чтобы
вам посоветовали как её решить.[/i]
у меня стояло тогда и сейчас:
[code]
fastcgi_next_upstream timeout;
fastcgi_connect_timeout 1;
[/code]
nginx отправляет запросы на бекенды по очереди 1-ый на 1-ый, 2-ой на 2-ой, 3-ий на 1-ый, даже если он занят, переброска на 2-ой бекенд не происходит. Т.е. таймаут не срабатывает, как я понимаю, отсюда я делаю вывод, что nginx не считает занятый php-cgi не отвечающим, т.к. последний видать всё же отвечает, поэтому и не переходит к следующему.
[i]А скоропостижные выводы, типа "так
ничего не выйдет", вашу задачу решить не поможет.[/i]
надеюсь, что я что-то упустил и связка nginx + несколько php-cgi всё же настраиваема без костыля, что я нашёл ниже :)
---
В поисках решения этой проблемы на сайте Lighttpd нашёлся порт (не офиц.) их spawn-fcgi под Windows (обсуждалось здесь http://redmine.lighttpd.net/boards/2/topics/686). Порт оказался вполне рабочий и, вроде бы, стабильно работает с nginx, чему я, конечно, крайне рад.
Posted at Nginx Forum: http://forum.nginx.org/read.php?21,92416,94105#msg-94105
Подробная информация о списке рассылки nginx-ru