Como liberar a solicitação intermediária do buffer SSL do NginX para o Server Push

1

Estou escrevendo um aplicativo que usa pesquisas longas para enviar mensagens aos clientes. Não termina a solicitação quando termina de enviar uma mensagem: ela apenas libera. Funciona bem, mesmo quando faço proxy através do nginx e acesse-o pela internet.

upstream app {
  server localhost:1000;
}

server {
    listen 80;    
    location / {
        proxy_pass http://app;
        client_max_body_size 20m;
        proxy_redirect off;
        send_timeout 86400;
        proxy_read_timeout 86400;
        proxy_buffering off;
        gzip off;
    }
}

Isto é, até eu ativar o SSL no nginx. Então não vai mais flush. Eu posso contornar isso definindo ssl_buffer_size para 1, mas isso afeta negativamente o desempenho.

server {
    listen 443;
    ssl_certificate cert.pem;
    ssl_certificate_key key.pem;
    ssl_buffer_size 1;
    ...
}

Com qualquer outro tamanho de buffer, o NginX não irá esvaziar o último buffer incompleto, a menos que o pedido termine. Existe alguma maneira de forçá-lo? Eu sou tola por querer isso?

Eu notei que o flush funciona enquanto a quantidade de dados estiver abaixo de 61450 bytes. Se você tentar liberar muito mais do que isso, ele iniciará o buffer.

    
por Nick Retallack 10.11.2014 / 21:11

0 respostas

Tags