
A recente atualização do zlib devido auma falha de segurançaparece causar um grande problema ao servir PHP-FPM 8.0 via nginx no Ubuntu focal. Quaisquer solicitações com codificação gzip falham logo no início da resposta, embora o nginx registre as solicitações como bem-sucedidas e com o tamanho correto. Se eu fizer solicitações sem Accept-Encoding
cabeçalho, funciona perfeitamente. Como solução alternativa, estou tentando desabilitar todo o suporte ao gzip, mas parece ser extremamente persistente... Até agora tentei essas configurações no nginx:
gzip off;
fastcgi_buffering off;
add_header Accept-Encoding "";
proxy_set_header Accept-Encoding "";
e também verifiquei se não há outras diretivas que as ativem novamente por meio do grep nginx -T
na saída.
No entanto, se eu despejar os cabeçalhos de solicitação do PHP (ou seja, depois de passar pelo nginx), ainda vejo este cabeçalho de aceitação:
Accept-Encoding: deflate, gzip, br, zstd
então nginx énãoretirando-o da solicitação antes de passar para o PHP-FPM. Tentei definir essas diretivas nos níveis de servidor e local, com os mesmos resultados.
No PHP, desabilitei todo o buffer de saída, mas não parece ser possível desabilitar o zlib sem recompilar.
Como posso fazer com que o nginx remova esse cabeçalho de solicitação para que nem o nginx nem o PHP comprimam as respostas?
Responder1
proxy_set_header
directiva é paraproxypedidos, ou seja, para passá-losHTTP para HTTP-cadeia de servidores. E você tem oFastCGIserver é o próximo na cadeia, então seu conjunto de diretivas começa em fastcgi_
.
Você pode desabilitar completamente a passagem de cabeçalhos de solicitação para o PHP definindo- fastcgi_pass_request_headers
o como desativado ou pode descartar o cabeçalho específico redefinindo-o com fastcgi_set_header
.
Responder2
Para fastcgi, você usa uma sintaxe um pouco diferente. Em vez de definir o cabeçalho, você define um parâmetro que corresponde ao cabeçalho. Os nomes dos parâmetros começam com "HTTP_" e o nome do cabeçalho segue em letras maiúsculas. Os traços são substituídos por sublinhados no nome do parâmetro.
fastcgi_param HTTP_ACCEPT_ENCODING "";