Привет всем, проблема банальная - но довольно серьёзная. 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 никак. Надеюсь разработчики меня услышат.