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