Evento Apache mpm não funciona conforme esperado com SSL/HTTPS

Evento Apache mpm não funciona conforme esperado com SSL/HTTPS

Eu tenho um servidor com Apache/2.4.6 (CentOS)+ OpenSSL/1.0.2k-fips(sei que esta é uma versão antiga do Apache, mas não pode ser atualizada no momento). O evento mpm é usado para multiprocessamento.

Ao veicular HTTPconteúdo, tudo funciona conforme o esperado:

insira a descrição da imagem aqui

O servidor pode lidar com muitas solicitações simultaneamente sem problemas (o teste foi feito com aproximadamente 150 clientes, cada um criando 4 conexões paralelas = 600 conexões). Todas as solicitações têm como alvo conteúdo estático e usam keepalive.

com HTTPS/SSL, é uma história diferente.

insira a descrição da imagem aqui

Ele usará rapidamente todos os 400 threads possíveis (veja o placar). Nenhuma conexão assíncrona será feita. AFAIK ele se comporta como mpm worker.

A princípio pensei que fosse uma limitação e que mpm eventfuncionaria apenas com HTTP. Mas não é isso que está escrito nodocumentação(sobComo funciona>Conexões assíncronas) :

Essas melhorias são válidas para conexões HTTP/HTTPS.

EDIT: há algumas informações emLimitaçõesSeção dedocumentaçãoisso explica que, em alguns casos, pode voltar a mpm worker. No entanto, isso não parece se aplicar aqui.

Responder1

Ao examinar o código-fonte do Apache em busca de possíveis mpm workercondições de fallback, descobri o seguinte relevanteComente:

Se tivermos um filtro de entrada que 'obstrui' o fluxo de entrada, como o mod_ssl costumava fazer, vamos apenas fazer a leitura normal dos filtros de entrada, como faz o Worker MPM.

Como estou usando uma versão antiga do Apache, isso pode explicar que mpm eventnão funciona bem com SSL.

EDIT: parece que isso foi feito nestecomprometer-se:

core, mod_ssl: suspende a restrição que impede que mod_ssl aproveite ao máximo o evento MPM.

Eu uso o Apache 2.4.6e a mudança foi lançada posteriormente, em 2.4.7.

informação relacionada