Como eu habilito o flush () do PHP com nginx + PHP-FPM?

3

Estou usando o nginx com o PHP-FPM (o APC está instalado).

Eu preciso que o flush() do PHP funcione. Isso é possível?

Coisas que tentei até agora:

  • Desativando todo o buffer de saída em php.ini , bem como a compactação de saída.
  • Desativando gzip na configuração do nginx.
  • Definindo as configurações do buffer fastcgi_* do nginx e fastcgi_max_temp_file_size para zero.

Tenho certeza que devo estar perdendo alguma coisa, já que encontrei muitas postagens aqui e em outros lugares onde as pessoas afirmaram que elas funcionaram, mas não estou tendo sorte, parece.

    
por Abraham Vegh 18.03.2013 / 08:08

4 respostas

4

Infelizmente, não é possível com o nginx. A implementação do nginx do fastcgi requer que um buffer esteja no lugar, mesmo se você definir a diretiva de buffer como 0, isso fará com que ela seja armazenada no disco em vez de memória.

Você terá que descobrir algum sistema alternativo, como uma fila onde você pode pesquisar o status. (pense ala gearman por exemplo)

Editar: Desde então, isso é possível: link

    
por 18.03.2013 / 10:46
2

Eu queria a mesma coisa, e acontece que é possível. Tudo que você precisa é isso antes que qualquer coisa seja refletida:

header('Content-Encoding: none;');

Então para liberar você faz o flush normalmente:

ob_end_flush();
flush();

O Nginx parece entender que a codificação foi desativada e não gzip.

    
por 27.06.2013 / 12:06
0

É possível, veja esta resposta .

Eu tentei por mim mesmo e funciona.

Atualize seu servidor nginx {} config:

fastcgi_keep_conn on; # < solution

proxy_buffering off;
gzip off;
    
por 11.02.2014 / 18:55
0

É possível. Coloque isso na seção do servidor do arquivo de configuração do seu site:

gzip off;
proxy_buffering off;
fastcgi_keep_conn on;
fastcgi_max_temp_file_size 0;
fastcgi_buffering off;

Coloque isso no php.ini

output_buffering = Off
implicit_flush = On

Tenha cuidado. A desativação desses buffers pode ter graves implicações no desempenho.

    
por 28.11.2017 / 15:38