Событие Apache mpm не работает должным образом с SSL/HTTPS

Событие Apache mpm не работает должным образом с SSL/HTTPS

У меня есть сервер с Apache/2.4.6 (CentOS)+ OpenSSL/1.0.2k-fips(я знаю, что это старая версия Apache, но сейчас ее нельзя обновить). Событие mpm используется для многопроцессорной обработки.

При подаче HTTPконтента все работает так, как и ожидалось:

введите описание изображения здесь

Сервер может обрабатывать много запросов одновременно без проблем (тест проводился примерно с 150 клиентами, каждый из которых создавал 4 параллельных соединения = 600 соединений). Все запросы нацелены на статический контент и используют keepalive.

с HTTPS/SSL, это другая история.

введите описание изображения здесь

Он быстро использует все 400 возможных потоков (см. табло). Асинхронных соединений не будет. Насколько мне известно, он ведет себя как mpm worker.

Сначала я думал, что это ограничение и это mpm eventбудет работать только с HTTP. Но это не то, что написано вдокументация(подКак это работает>Асинхронные соединения) :

Эти улучшения действительны для обоих соединений HTTP/HTTPS.

EDIT: есть некоторая информация вОграниченияразделдокументациякоторые объясняют, что в некоторых случаях он может вернуться к mpm worker. Однако, похоже, это здесь не применимо.

решение1

При рассмотрении исходного кода Apache на предмет возможныхmpm worker условий отката я обнаружил следующее:комментарий:

Если у нас есть входной фильтр, который «засоряет» входной поток, как это делал mod_ssl, давайте просто выполним обычное чтение из входных фильтров, как это делает Worker MPM.

Поскольку я использую старую версию Apache, это может быть причиной mpm eventнекорректной работы SSL.

EDIT: похоже, это было сделано в этомсовершить:

core, mod_ssl: Снимите ограничение, которое не позволяет mod_ssl в полной мере использовать возможности MPM событий.

Я использую Apache 2.4.6, и изменения были опубликованы позже, в 2.4.7.

Связанный контент