请问如果在上游服务器上配置了 gzip 压缩,还需要在 nginx 反向代理上配置吗?这样不是双重压缩了?
1
Kinnice 2022-05-17 17:05:03 +08:00
加,
缺省情况下,Nginx 连接上游服务器不启用 gzip |
2
jinliming2 2022-05-17 17:10:31 +08:00 1
@Kinnice 不需要处理。
1. nginx 反向代理的时候默认不会带 accept encoding 头,上游正常本身就不会压缩 2. 如果上游没处理 accept encoding 头,始终提供了压缩,nginx 会处理 content encoding 头,不会导致重复压缩 唯一的例外是,服务器完全不遵守标准,返回了压缩的数据却没带 content encoding 头,才会需要你处理 |
3
BrJfUsTD OP @Kinnice 如果上游没有压缩,看文档需要添加 gzip_proxied 参数确保 gzip 会压缩。但如果上游服务器已经压缩了,反代再压缩不是双重压缩了吗?看不懂……
|
4
Kinnice 2022-05-17 17:17:04 +08:00
@jinliming2 我看他的感觉不是为了多压缩的问题,而是实际的客户端也想使用 gzip
|
5
jinliming2 2022-05-17 17:20:09 +08:00
@BrJfUsTD 你开了压缩,反代的时候会判断的,上游没压缩才会压缩。如果上游已经压缩过了,nginx 会直接把上游压缩过的 body 数据直接透传下去,不会二次压缩。
|
6
BrJfUsTD OP @jinliming2 哦,也就是正常情况即便上游服务器配置了 gzip 压缩,但不知道客户端支持的压缩格式,就不处理压缩,直接返回未压缩数据给反代,然后反代再返回用户,那么正确做法是只在反代机上配置 gzip 咯?
|
7
jinliming2 2022-05-17 17:40:46 +08:00
@BrJfUsTD 对,一般在反代上做就行
|
8
BrJfUsTD OP @jinliming2 谢谢解答!
|