开启 gzip 需要在 nginx 反向代理上配置吗?

2022-05-17 16:58:05 +08:00
 BrJfUsTD

请问如果在上游服务器上配置了 gzip 压缩,还需要在 nginx 反向代理上配置吗?这样不是双重压缩了?

2075 次点击
所在节点    NGINX
8 条回复
Kinnice
2022-05-17 17:05:03 +08:00
加,
缺省情况下,Nginx 连接上游服务器不启用 gzip
jinliming2
2022-05-17 17:10:31 +08:00
@Kinnice 不需要处理。
1. nginx 反向代理的时候默认不会带 accept encoding 头,上游正常本身就不会压缩
2. 如果上游没处理 accept encoding 头,始终提供了压缩,nginx 会处理 content encoding 头,不会导致重复压缩

唯一的例外是,服务器完全不遵守标准,返回了压缩的数据却没带 content encoding 头,才会需要你处理
BrJfUsTD
2022-05-17 17:12:36 +08:00
@Kinnice 如果上游没有压缩,看文档需要添加 gzip_proxied 参数确保 gzip 会压缩。但如果上游服务器已经压缩了,反代再压缩不是双重压缩了吗?看不懂……
Kinnice
2022-05-17 17:17:04 +08:00
@jinliming2 我看他的感觉不是为了多压缩的问题,而是实际的客户端也想使用 gzip
jinliming2
2022-05-17 17:20:09 +08:00
@BrJfUsTD 你开了压缩,反代的时候会判断的,上游没压缩才会压缩。如果上游已经压缩过了,nginx 会直接把上游压缩过的 body 数据直接透传下去,不会二次压缩。
BrJfUsTD
2022-05-17 17:26:08 +08:00
@jinliming2 哦,也就是正常情况即便上游服务器配置了 gzip 压缩,但不知道客户端支持的压缩格式,就不处理压缩,直接返回未压缩数据给反代,然后反代再返回用户,那么正确做法是只在反代机上配置 gzip 咯?
jinliming2
2022-05-17 17:40:46 +08:00
@BrJfUsTD 对,一般在反代上做就行
BrJfUsTD
2022-05-17 17:42:12 +08:00
@jinliming2 谢谢解答!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/853500

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX