Всем: Платная опция и невозможность использования Nginx под Windows
sofiamay
nginx-forum at nginx.us
Tue Dec 16 23:40:57 UTC 2014
Привет всем, проблема банальная - но довольно серьёзная. Nginx невозможно
использовать в Windows ввиду отсутствия настройки, которая бы ограничивала
коннекты бэкендов к Fast-CGI. Думаю все знают что PHP-FPM для Windows нет и
не будет? Получается Nginx сейчас можно использовать в Windows только чтобы
поиграться со статикой, о PHP можно забыть.
Теперь более детально объясняю на пальцах:
1) В Windows нет PHP-FPM, поэтому традиционно используется FAST-CGI, к
примеру так: c:\php\php-cgi.exe -b 127.0.0.1:5000 -c c:\php\php.ini
Т.е. важно чтобы все понимали, что количество одновременных запросов,
которое может обрабатывать PHP, равно количеству вот таких вот CGI воркеров,
которые висят на портах: 5001 5002 и т.д. каждый воркер жрёт много памяти,
поэтому много их не запустишь.
2) Теперь что у нас получается, чтобы обработать не 2-3 запроса к PHP, а
хотя бы 20 одновременных, нам нужно чтобы Nginx попридержал лишние коннекты,
пока все бэкенды заняты, т.е. чтобы он не пытался делать более 1
одновременного коннекта к каждому php-воркеру-бэкенду. Но вместо этого Nginx
пытается по кругу подавать коннекты ко всем уже занятым бэкендам и
соответственно выдаёт ошибку когда не может получить ответ ни от одного
бэкенда.
3) Я уже было обрадовался, когда увидел что в документации есть опция
"max_conns=число;", но оказалось что она только в платной подписке. Но ведь
этим вы полностью отрезаете использование Nginx под Windows, если нужно
использовать PHP.
В общем я взываю к разуму разработчиков и прошу добавить эту опцию в
бесплатную версию (хотя бы в Windows бинарники). Один баг под Windows я
когда-то уже запостил (до сих пор висит), второй очень быстро исправили, вот
теперь надеюсь что и в третий раз разум возьмёт верх над хотением денег.
Важно понимать, что в Windows, в отличие от Linux, эта опция жизненно
необходима, без неё использование Nginx вместе с PHP становится невозможным
(кроме как поиграться). Если вы не можете перенести эту опцию полностью в
бесплатный Nginx, то внедрите её хотя бы в Windows дистрибутивы, это очень и
очень нужно сделать.
Если этот вопрос требует обсуждения, то может сделать какое-то голосование?
Но я кажется и так доходчиво всё объяснил и я думаю всем понятно что без
этой опции в Windows никак. Надеюсь разработчики меня услышат.
Posted at Nginx Forum: http://forum.nginx.org/read.php?21,255544,255544#msg-255544
Подробная информация о списке рассылки nginx-ru