Bei folgender Konfiguration von 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 beantwortet Teile der Antwort nicht richtig. Sobald ich proxy_pass aus der Konfiguration entferne, funktioniert es ordnungsgemäß. Viele Leute mit diesem Problem haben letztendlich eine gzip-Komprimierung vom Upstream-Server. Ich habe überprüft, dass auf meinem Upstream-Server die GZIP-Codierung für die Antworten nicht aktiviert ist. Aber nur für den Fall, ich habe auch den obigen proxy_set_header verwendet, um gzip nicht zu akzeptieren.
Fehlt mir möglicherweise noch etwas?
James T Snell antwortete in einem Kommentar:
Ich hatte kein proxy_set_header Accept-Encoding ""; Sie benötigen dies, um dem Backend mitzuteilen, dass in einer Antwort keine Komprimierung zulässig ist.
quelle
Muss es sich in einem Standortblock befinden? vielleicht auch keine zitate zu match arg?
http://wiki.nginx.org/HttpSubModule
quelle