Re: nginx (Windows XP) + php-cgi.exe - одновременно обрабатывает только один запрос - остальные ждут

iWarior nginx-forum на nginx.us
Вт Июн 1 20:32:04 MSD 2010


[i]По поводу количества процессов: скорее хватит 20-30 (и не забываем кешировать ответы бекендов), хотя, конечно, это сильно зависит от
нагрузки. На linux/freebsd значительная часть памяти у них всех будет общая. Что ещё вас смущает в количестве? На windows да, это мало пригодно. Там нужно использовать потоки, и опять же, память будет общая.[/i]

Это всё замечательно, НО: на linux/freebsd nginx конфигурируется точно также как и на windows - fastcgi_pass ссылается или на [u]один[/u] хост:порт или на [u]один[/u] сокет и этот один fastcgi_pass обслуживает все запросы. И все эти запросы не ждут по одному пока их рассчитают - всё работает параллельно.

В Windows же c php-cgi у меня задачи эти в очередь выстраиваются. Вопрос: Кто-нибудь на Windows такое поднимал, чтобы nginx+php работали нормально на низкой нагрузке? Я что-то не так делаю, или это баг в php-cgi?

Варианты с Apache, IIS и прочими, а также "не хрен даже это делать на nginx" я к сведению принял, но на данный момент nginx+php видится оптимальным и реально самым быстрым решением.

[i]Про upstream всё правильно, да. Таймауты тут не причём, просто по
очереди перебираются бекенды, да. Есть модуль fair upstream, который
более хитро выбирает бекенды, чтоб они равномерно были загружены.[/i]

Косяк в том, что upstream перебирает бекенды случайно с учётом весов и прочего, плюс прибивает мёртвые бекенды. Но занятый php-cgi не мёртвый, поэтому он не исключается даже по нулевому таймауту, и если при переборе не повезёт, то ждать ответа придётся ровно столько же, сколько и без upstream. Поэтому такое решение не подходит и смысла плодить php-cgi нету...

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,92416,93197#msg-93197




Подробная информация о списке рассылки nginx-ru