鉴于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 "";
}
}
Run Code Online (Sandbox Code Playgroud)
Sub_filter 没有正确响应响应的一部分。从配置中删除 proxy_pass 后,它就可以正常工作。很多遇到这个问题的人最终都会从上游服务器获得 gzip 压缩。我已经验证我的上游服务器没有为其响应打开 gzip 编码。但为了以防万一,我还使用了上面的 proxy_set_header 来不接受 gzip。
是否还有其他我想念的东西?