Downloads grandes interrompidos na recarga do nginx

2

Estou executando o nginx 1.9.3. Ao baixar um arquivo grande (neste caso, 1GiB), e recarregar o nginx via "nginx -s reload", o download é interrompido em vários navegadores, incluindo (mas potencialmente não limitado a), Opera, Google Chrome e Firefox. / p>

Com curvas e bandeiras padrão (sem cabeçalhos extras, apenas o URL do arquivo), o download funciona bem e não é interrompido.

server {
    listen 443 ssl spdy;
    include tls.conf;
    server_name example.com;

    root /var/www/dl;

    access_log logs/dl.access.log;
    error_log logs/dl.error.log;

    error_page 403 https://example.com;
}

Pelo que entendi, os processos do nginx devem esperar que qualquer requisição seja concluída antes de finalizar, então não tenho certeza do porque isso está acontecendo. Se alguém pudesse fornecer meu cérebro com o conhecimento extra ou me indicar algumas diretrizes relevantes na documentação do nginx, eu adoraria consertar isso. : -)

    
por AlephBeth 05.08.2015 / 16:09

1 resposta

2

Leia este documento do nginx . Você precisa executar reinicialização normal em vez de recarregar . O recarregamento simples não reinicia graciosamente os processos de trabalho.

A reinicialização normal seria as seguintes etapas:

kill -USR2 $(cat /var/run/nginx.pid)
kill -WINCH $(cat /var/run/nginx.pid.oldbin)
kill -QUIT $(cat /var/run/nginx.pid.oldbin)

EDIT: Bem, o documento realmente lê:

HUP changing configuration, keeping up with a changed time zone (only for FreeBSD and Linux), starting new worker processes with a new configuration, graceful shutdown of old worker processes

Portanto, apenas kill -HUP $(cat /var/run/nginx.pid) seria suficiente e nginx -s reload parece fazer o mesmo ... Haveria diferentes causas para o seu problema.

    
por 05.08.2015 / 17:01

Tags