V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
BrJfUsTD
V2EX  ›  NGINX

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

  •  
  •   BrJfUsTD · 2022-05-17 16:58:05 +08:00 · 2052 次点击
    这是一个创建于 928 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    唯一的例外是,服务器完全不遵守标准,返回了压缩的数据却没带 content encoding 头,才会需要你处理
    BrJfUsTD
        3
    BrJfUsTD  
    OP
       2022-05-17 17:12:36 +08:00
    @Kinnice 如果上游没有压缩,看文档需要添加 gzip_proxied 参数确保 gzip 会压缩。但如果上游服务器已经压缩了,反代再压缩不是双重压缩了吗?看不懂……
    Kinnice
        4
    Kinnice  
       2022-05-17 17:17:04 +08:00
    @jinliming2 我看他的感觉不是为了多压缩的问题,而是实际的客户端也想使用 gzip
    jinliming2
        5
    jinliming2  
       2022-05-17 17:20:09 +08:00
    @BrJfUsTD 你开了压缩,反代的时候会判断的,上游没压缩才会压缩。如果上游已经压缩过了,nginx 会直接把上游压缩过的 body 数据直接透传下去,不会二次压缩。
    BrJfUsTD
        6
    BrJfUsTD  
    OP
       2022-05-17 17:26:08 +08:00
    @jinliming2 哦,也就是正常情况即便上游服务器配置了 gzip 压缩,但不知道客户端支持的压缩格式,就不处理压缩,直接返回未压缩数据给反代,然后反代再返回用户,那么正确做法是只在反代机上配置 gzip 咯?
    jinliming2
        7
    jinliming2  
       2022-05-17 17:40:46 +08:00
    @BrJfUsTD 对,一般在反代上做就行
    BrJfUsTD
        8
    BrJfUsTD  
    OP
       2022-05-17 17:42:12 +08:00
    @jinliming2 谢谢解答!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1478 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 17:26 · PVG 01:26 · LAX 09:26 · JFK 12:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.