
La reciente actualización de zlib debido aun agujero de seguridadparece causar un problema importante al servir PHP-FPM 8.0 a través de nginx en Ubuntu focal. Cualquier solicitud con codificación gzip falla justo al comienzo de la respuesta, aunque nginx registra las solicitudes como exitosas y con el tamaño correcto. Si hago solicitudes sin Accept-Encoding
encabezado, funciona perfectamente. Como solución alternativa, estoy intentando desactivar toda la compatibilidad con gzip, pero parece ser notablemente persistente... Hasta ahora he probado estas configuraciones en nginx:
gzip off;
fastcgi_buffering off;
add_header Accept-Encoding "";
proxy_set_header Accept-Encoding "";
y también verifiqué que no haya otras directivas que las vuelvan a activar mediante grepping nginx -T
de salida.
Sin embargo, si descarto los encabezados de solicitud de PHP (es decir, después de pasar por nginx), todavía veo este encabezado de aceptación:
Accept-Encoding: deflate, gzip, br, zstd
entonces nginx esnoeliminándolo de la solicitud antes de pasar a PHP-FPM. Intenté configurar estas directivas en los niveles de servidor y ubicación, con los mismos resultados.
En PHP, deshabilité todo el almacenamiento en búfer de salida, pero no parece posible deshabilitar zlib sin volver a compilar.
¿Cómo puedo hacer que nginx elimine este encabezado de solicitud para que ni nginx ni PHP compriman las respuestas?
Respuesta1
proxy_set_header
directiva es paraproxysolicitudes, es decir, pasarlas porHTTP a HTTP-cadena de servidores. Y tienes elCGI rápidoservidor siguiente en la cadena, por lo que su conjunto de directivas comienza desde fastcgi_
.
Puede deshabilitar completamente el paso de encabezados de solicitud a PHP desactivándolos fastcgi_pass_request_headers
, o puede eliminar el encabezado específico restableciéndolo con fastcgi_set_header
.
Respuesta2
Para fastcgi, usas una sintaxis un poco diferente. En lugar de configurar el encabezado, configura un parámetro que corresponde al encabezado. Los nombres de los parámetros comienzan con "HTTP_", luego el nombre del encabezado sigue en mayúsculas. Los guiones se reemplazan por guiones bajos en el nombre del parámetro.
fastcgi_param HTTP_ACCEPT_ENCODING "";