我们的 Web 服务器运行 IIS 7,并配置为压缩动态和静态内容。当我直接访问这些服务器时,gzip 压缩就起作用了。
我最近把nginx放在他们面前,gzip压缩已经停止了。我能够通过在 nginx 本身上显式启用 gzip 压缩来解决这个问题,但是考虑到我有六个后端并且只有一个活动的 nginx 框,这似乎有点低效。
nginx 似乎正在剥离Accept-Encoding标头。有没有人对如何“纠正”这种行为有任何建议?
示例配置:
upstream backend {
server 127.0.0.1:8080;
}
server {
listen 80;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location / {
proxy_pass http://backend;
}
}
Run Code Online (Sandbox Code Playgroud)
Nginx 是一个 HTTP/1.0 反向代理,gzip 压缩直到 HTTP/1.1 才出现在 HTTP 规范中。
因此 nginx 不会发送 gzip Accept-encoding 标头,因为它根本不接受它。在 nginx 中实现 gzip 处理的正确方法是与后端对话 fastcgi 或使用 nginx 进行 gzip。
| 归档时间: |
|
| 查看次数: |
2976 次 |
| 最近记录: |