nginx enviando resposta incompleta

nginx enviando resposta incompleta

Sem reinicialização ou modificação da configuração, o nginx às vezes envia respostas incompletas. Hoje consegui reproduzir bem, mas ainda não sei o que está errado ou como consertar.

Coloquei um arquivo de 5 MB no local/caminho do alias do site que o nginx está configurado para usar. Não há php5-fpm, módulos etc. apenas nginx para servir arquivos estáticos.

Ao testar, não há outro usuário acessando o servidor, nenhum acesso http, exceto minhas solicitações de teste.

O download falha e o Google Chrome mostra no log de tráfego que houve 2 solicitações, embora eu tenha colocado o URL http para o download apenas UMA VEZ e não houve redirecionamento ou outra segunda solicitação iniciada por mim.

O mesmo problema no access.log do servidor também:

TESTE1

[14/maio/2014:14:06:53 +0200] "GET /dev/test_test.m4v HTTP/1.1" 206 1 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, como Geco) Chrome/32.0.1700.107 Safari/537.36"

[14/May/2014:14:06:53 +0200] "GET /dev/test_test.m4v HTTP/1.1" 200 130680 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, como Geco) Cromo/32.0.1700.10

[14/maio/2014:14:07:15 +0200] "GET /dev/test_test.m4v HTTP/1.1" 206 1 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, como Geco) Chrome/32.0.1700.107 Safari/537.36"

[14/maio/2014:14:07:15 +0200] "GET /dev/test_test.m4v HTTP/1.1" 200 114684 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, como Geco) Cromo/32.0.1700.10

Você pode ver que sempre há uma solicitação com tamanho de resposta=1 e outra com tamanho misto, mas >1. Porém, o resultado no navegador é sempre o mesmo. => resposta quebrada, falha no download.

Para ter certeza de que não está relacionado ao status/resposta http 206, adiciono max_ranges 0;à configuração e tento novamente -> test2.

TESTE2

[14/maio/2014:14:11:36 +0200] "GET /dev/test_test.m4v HTTP/1.1" 200 152460 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, como Geco) Chrome/32.0.1700.107 Safari/537.36"

[14/maio/2014:14:11:38 +0200] "GET /dev/test_test.m4v HTTP/1.1" 200 142296 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, como Geco) Chrome/32.0.1700.107 Safari/537.36"

Mesmo resultado no navegador. Sempre houve falha no download/solicitação e o tamanho no access.log é sempre diferente, como parte aleatória ou tamanho da resposta.

status do servidor: iowait, RAM, CPU estão quase inativos. Não há alta carga ou limitação.

Este é um problema ou bug conhecido ou você sabe como consertar isso?

Responder1

Com um cenário tão simples como este, tenho certeza que você tem um firewall, dispositivo IDS/IPS ou qualquer outra coisa na frente do seu servidor nginx, atrapalhando os downloads. Em caso de dúvida, entre em contato com seu ISP.

informação relacionada