Я не могу понять, как настроить Nginx и php-fpm, чтобы разрешить более 6 одновременных подключений с одного IP. У меня есть следующие простые файлы PHP (без FW):
<?php
// long-request.php
sleep(15);
-
<?php
// instant-request.php
echo 'Meow World!';
Если я открою более 6 окон браузера с помощью long-request.php
, то Instant-request.php
откладывается до завершения окна с первым долгим запросом. Когда это происходит, php-fpm дает мне следующий статус:
pool: www
process manager: ondemand
start time: 28/Jun/2018:23:30:05 +0200
start since: 183
accepted conn: 56
listen queue: 0
max listen queue: 0
listen queue len: 0
idle processes: 0
active processes: 7
total processes: 7
max active processes: 7
max children reached: 0
slow requests: 0
Моя конфигурация: MacOS 10.13.5 (17F77), PHP 7.2.5, nginx / 1.13.12
php-fpm.d/www.conf
pm = ondemand
pm.max_children = 100
Я пробовал несколько конфигураций. Я установил pm в статический, динамический режим, я увеличил количество * _servers, ничего не помогло.
edit: Вот результат /usr/local/var/log/php-fpm.log
(ничего подозрительно)
[28-Jun-2018 23:57:07] NOTICE: fpm is running, pid 62887
[28-Jun-2018 23:57:07] NOTICE: ready to handle connections
Я нашел ответ. Это было вызвано максимальным количеством параллельных подключений, разрешенных браузером / протоколом http. Прочтите подробный ответ на странице Stackoverflow.