Dada la siguiente configuración de nginx:
server {
listen 80;
server_name apilocal;
sub_filter "apiupstream/api" "apilocal";
sub_filter_once off;
location /people/ {
proxy_pass http://apiupstream/api/people/;
proxy_set_header Accept-Encoding "";
}
}
Sub_filter no responde correctamente partes de la respuesta. Una vez que elimino proxy_pass de la configuración, funciona correctamente. Muchas personas con este problema terminan teniendo compresión gzip desde el servidor ascendente. He verificado que mi servidor ascendente no tiene activada la codificación gzip para sus respuestas. Pero por si acaso, también he usado el proxy_set_header anterior para no aceptar gzip.
¿Hay potencialmente otra cosa que me falta?
James T Snell lo respondió en un comentario:
No tenía proxy_set_header Accept-Encoding ""; necesitas eso para decirle al backend que la compresión no está permitida en una respuesta.
fuente
¿necesita estar dentro de un bloque de ubicación? Además, ¿tal vez no hay citas sobre el argumento del partido?
http://wiki.nginx.org/HttpSubModule
fuente