
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 HTTP
conteúdo, tudo funciona conforme o esperado:
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.
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 event
funcionaria 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 worker
condiçõ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 event
nã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.6
e a mudança foi lançada posteriormente, em 2.4.7
.