Étant donné la configuration suivante 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 ne répond pas correctement aux parties de la réponse. Une fois que j'ai supprimé proxy_pass de la configuration, cela fonctionne correctement. Beaucoup de gens avec ce problème finissent par avoir une compression gzip à partir du serveur en amont. J'ai vérifié que mon serveur amont n'a pas le codage gzip activé pour ses réponses. Mais juste au cas où, j'ai également utilisé le proxy_set_header ci-dessus pour ne pas accepter gzip.
Y a-t-il potentiellement quelque chose d'autre qui me manque?
James T Snell y a répondu dans un commentaire:
Je n'avais pas proxy_set_header Accept-Encoding ""; vous en avez besoin pour indiquer au backend que la compression n'est pas autorisée dans une réponse.
la source
doit-il être à l'intérieur d'un bloc de localisation? aussi, peut-être pas de citations sur match arg?
http://wiki.nginx.org/HttpSubModule
la source