Использовал установку Debian Apache + fcgi, которая была очень надежной в течение многих лет.
Теперь переключился на Debian 10, и я не могу заставить его работать стабильно.
В глобальной конфигурации у меня есть:
<IfModule proxy_fcgi_module>
# on previous versions of apache, having enablereuse on socks would hang time to time
<Proxy "unix:/run/php/pool.php7.3-fpm.sock|fcgi://pool-php-7-3" disablereuse=On enablereuse=Off max=2 >
ProxySet connectiontimeout=30 timeout=30 acquire=30
</Proxy>
</IfModule>
Затем в моем виртуальном хосте:
<VirtualHost *>
ServerName example.com
DocumentRoot /path/to/docroot
<Directory /path/to/docroot>
Options +Indexes
AllowOverride all
Require all granted
</Directory>
<IfModule proxy_fcgi_module>
<FilesMatch ".+\.ph(ar|p|tml)$">
SetHandler "proxy:fcgi://pool-php-7-3"
</FilesMatch>
</IfModule>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# CustomLog /dev/null
# ErrorLog /dev/null
</VirtualHost>
Мне нужно ограничить количество одновременных запросов, передаваемых в php-fpm, и этот способ работает идеально. Apache будет ставить запросы в очередь, и у меня одновременно будет работать только 2 процесса php.
Теперь у меня такое ощущение, что у меня 4 процесса.
И любой нагрузочный тест сразу же завершается ошибкой при 4-м запросе, независимо от того, что я поставил в качестве таймаутов:
[Thu Sep 26 08:45:50.719406 2019] [proxy:error] [pid 11993:tid 139988284995328] (70007)The timeout specified has expired: AH00941: FCGI: failed to acquire connection for (pool-php-7-3)
Я что-то упускаю или Apache на Debian 10 - это чушь?
Я заметил, что теперь, если ты service apache2 reload
На защиту configtest невозможно ответить ... мы устали от эволюции, которая возвращает нас в 90-е из-за того, что мы не делаем ничего нового!
Обновить:
Теперь пытаемся использовать пакет buster-backport apache2 (2.4.41-1 ~ bpo10 + 1)
Итак, здесь кажется, что мне лучше с enablereuse = On (кроме этого max не соблюдается)
и 3-й параллельный запрос немедленно отбрасывается
с помощью ab -n 100 -c 2
все хорошо
Но если я открываю браузер, чтобы открыть страницу, я получаю мгновенное 503 ... а как насчет acqu = 30? Разве это не означает отклонить, если не удается получить запрос прокси в течение 30 секунд?
Спасибо за любую помощь ...