Posso obter o status localhost/servidor mesmo quando MaxClients está cheio?

Posso obter o status localhost/servidor mesmo quando MaxClients está cheio?

Estou construindo um sistema de monitoramento que detectará quantas solicitações (inativas) estão sendo processadas no momento. O método que estou usando para detectar isso é conectando-se a http://host local/status do servidor .

A questão é: se o Apache não puder servir mais nenhuma conexão nova (ex: MaxClientsalcançou o topo), como posso detectar as estatísticas do Apache? É possível que o Apache seja inteligente o suficiente para ignorar MaxClientsa configuração das conexões do host local?

Qualquer ajuda é apreciada.

Responder1

Acredito que a resposta seja não, por dois motivos (e um terceiro, confuso):

  1. Suponha que as solicitações /server-status/fossem imunes MaxClients(mas aumentassem a contagem de clientes). Então, seria muito fácil fazer DoS apache com solicitações de modo que as legítimas não pudessem ser atendidas (e como elas podem ir além MaxClients, não há chance de as reais serem respondidas).

  2. O Apache provavelmente terá sua contagem de clientes baseada em [alguma função] do número de conexões abertas (uma conexão :80só pode enviar uma solicitação por vez, mas KeepAlivenos permite reutilizá-la, portanto, abrir uma conexão TCP é essencialmente um cliente). Isso será verificado antes mesmo de os cabeçalhos serem lidos (se houver espaço, ele delegará a solicitação a ser atendida. Se não houver, falhará rapidamente).

  3. Sempre que estou sobrecarregado com conexões, service httpd fullstatusfunciona muito devagar ou nem funciona :-)

Responder2

Pode ser necessário escrever um módulo Apache (ou modificar mod_status) para que outra interface seja usada para a comunicação com o servidor Apache. Você pode querer usar sinais posix e memória compartilhada ou um arquivo para solicitar e obter as estatísticas.

informação relacionada