Назад | Перейти на главную страницу

Apache и fcgi + php-fpm при мгновенном тайм-ауте debian buster

Использовал установку 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 секунд?

Спасибо за любую помощь ...