Como posso remover um cabeçalho de solicitação de codificação de aceitação no nginx?

Como posso remover um cabeçalho de solicitação de codificação de aceitação no nginx?

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-Encodingcabeç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 -Tna 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_headerdirectiva é 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_headerso 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 "";

informação relacionada