pedido falhou: erro ao ler os cabeçalhos

5


Recentemente, mudei meus servidores de um provedor para o outro e comecei a receber essas mensagens no log de erros do apache: "pedido falhou: erro ao ler os cabeçalhos"

Exemplo do erro e dos logs de acesso correspondentes do apache:

ApacheServer$ cat  error_log
ApacheServer [Tue Jan 20 11:07:44 2015] [error] [client x.x.x.x] request failed: error reading the headers

ApacheServer$ cat  access_log
x.x.x.x - - [20/Jan/2015:11:06:44 +0200] "GET SomeRandomRequest HTTP/1.1" 400 226 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.3; WOW64; Trident/7.0; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729; BRI/2; MAARJS)" "-"

Devo admitir que nada mudou além da versão do php (de 5.3 a 5.4).
Eu não vejo qualquer relação com algum navegador específico ou algum pedido específico, é totalmente aleatório.
Também não pode ser o problema do switch porque eu tenho o mesmo problema em meus outros servidores apache que não estão compartilhando o mesmo switch.

Até agora eu tentei:
- atualizar o driver da placa de rede
- aumenta o RX de 256 para 4096 com: ethtool -G eth1 rx 4096
- ligação segunda placa de rede para a interface
- google esse problema muitas vezes, mas não encontrou a solução ou o mesmo problema.

Versão do servidor: Apache / 2.2.15-39 (Unix)
centos 6.5

    
por Saker Falcon 20.01.2015 / 14:56

1 resposta

1

Esse é provavelmente um problema do cliente, embora você não tenha entendido antes. Não sei dizer.

O erro é registrado quando uma solicitação é recebida pelo Apache e não é concluída antes do final da seção de cabeçalhos. Assim, no mínimo, o Apache recebeu a linha de solicitação, por ex. GET / HTTP/1.0 , mas foi enviado um conjunto válido de cabeçalhos depois disso.

Portanto, pode não haver cabeçalhos, ou vários cabeçalhos sem a linha em branco que indica o limite entre os cabeçalhos e o corpo da solicitação.

Eu acho que é possível que o timeout PHP padrão tenha sido alterado entre suas duas instalações, então vale a pena verificar, mas na verdade isso é uma indicação de um cliente ruim (ou lento) fazendo pedidos para seu servidor web.

    
por 01.10.2016 / 09:37