Учитывая следующую конфигурацию 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 не отвечает должным образом части ответа. Как только я удаляю proxy_pass из конфигурации, он работает правильно. У многих людей с этой проблемой возникает сжатие gzip с вышестоящего сервера. Я убедился, что на моем вышестоящем сервере для ответов не включена кодировка gzip. Но на всякий случай я также использовал вышеупомянутый proxy_set_header, чтобы не принимать gzip.
Возможно, я что-то упускаю?
Джеймс Т Снелл ответил на это в комментарии:
У меня не было proxy_set_header Accept-Encoding ""; это нужно для того, чтобы сообщить бэкэнду, что сжатие не разрешено в ответе.
источник
это должно быть внутри блока местоположения? Кроме того, может быть, нет кавычек на матч Арг?
http://wiki.nginx.org/HttpSubModule
источник