A Pré-conectar-se a partir de um navegador pode levar a BADREQ
também se o navegador não estiver usando todas as conexões. Por exemplo, quando um usuário está baixando apenas um arquivo por navegador.
Isso significa que há duas causas possíveis para BADREQ
com cR--
ou CR--
(verificado com o HAProxy v1.5-dev24):
- Conexão não usada: Isso significa para o HTTP (S) um cliente conectado por TCP, mas nenhum cabeçalho de solicitação HTTP foi enviado até
timeout http-request
(CR--
) ou o cliente estava fechando a conexão novamente (cR--
). Causa: Conexão não utilizada de uma pré-conexão de um cliente normal ou balanceador de carga ou de uma varredura. - Solicitação incorreta. Um cliente estava enviando uma solicitação incorreta. Esses erros devem estar visíveis por soquete de estatísticas (veja a resposta anterior de womble).
A maioria dos navegadores modernos, como o Firefox ou o Chrome, faz um pré-conectar . Eu estava vendo que o Firefox ou o Chrome estavam abrindo sempre pelo menos duas conexões, mesmo que o navegador estivesse fazendo apenas uma solicitação, como baixar um arquivo (por exemplo, apenas baixando http://cdn.sstatic.net/serverfault/img/favicon.ico
)
Aumentar o valor de timeout http-request
em sua configuração HAProxy pode ajudar a reduzir essas entradas de log para conexões não utilizadas, porque um valor mais alto significa uma chance maior de que a conexão seja usada de um cliente, mas você também está arriscando O servidor não suporta mais todas as conexões abertas (ociosas).
Se você estiver usando outro balanceador de carga como o Amazon ELB na frente do HAProxy, verifique se esse tempo limite no HAProxy está correspondendo ao balanceador de carga, porque eles também podem usar o pré-conector.
Para conexões não usadas, você pode usar option dontlognull
em HAProxy para desabilitar essas entradas de log. Citação de Documento HAProxy para esta opção:
It is generally recommended not to use this option in uncontrolled environments (eg: internet), otherwise scans and other malicious activities would not be logged.