nginx не порождает рабочих при проксировании к FastCGI
У меня проблемы с nginx и FastCGI. Я работаю на Windows 7 и успешно скомпилировал / установил / установил следующие элементы:
- сервер nginx
- Библиотека FastCGI
- мицелий-FCGI-win32.exe
Я написал простое приложение FastCGI, которое просто отправляет сообщение обратно на веб-сервер. Вот упрощенная версия кода:
while(FCGI_Accept()) {
hello();
}
Я породил пару процессов с помощью spawn-fcgi-win32.exe
и все работало хорошо: доступ к моему приложению через веб-браузер вернул сообщение "привет".
Однако для проверки параллелизма я изменил свое приложение следующим образом:
while(FCGI_Accept()) {
sleep10(); //sleep 10 seconds
hello();
}
Затем я открыл две отдельные вкладки в своем браузере и получил доступ к своему приложению. Я ожидал, что обе вкладки вернут сообщение "привет" через 10 секунд, но только первая вкладка вернула его после истечения времени ожидания; вторая вкладка сделала это через 20 секунд. Это журнал доступа nginx:
127.0.0.1 - claudi [25 / Feb / 2015:17:45:16 +0100 ] "GET /foo.php HTTP / 1.1" 200 3664 "-" "Mozilla / 5.0 (Windows NT 6.1; WOW64; rv: 35.0) Gecko / 20100101 Firefox / 35.0 "
127.0.0.1 - claudi [25 / Feb / 2015:17:45:26 +0100 ] "GET /foo.php HTTP / 1.1" 200 3664 "-" "Mozilla / 5.0 (Windows NT 6.1; WOW64; rv: 35.0) Gecko / 20100101 Firefox / 35.0 "
Обратите внимание, что хотя я и отправлял запросы примерно в одно и то же время, nginx "увидел" второй запрос через 10 секунд. Мой файл конфигурации nginx устанавливает 4 рабочих и 1024 соединения на одного рабочего. Почему nginx не создает двух одновременно работающих рабочих, по одному на запрос?
Кстати, я уже проверил, что оба процесса FastCGI работают, выгрузив идентификатор процесса вместе с приветственным сообщением.
Спасибо
1 ответ
Используйте правильную версию здесь http://nginx-win.ecsds.eu/ и используйте установщик, чтобы заставить работать php/python/etc.