NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
BrJfUsTD
V2EX  ›  NGINX

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

  •  
  •   BrJfUsTD · May 17, 2022 · 2735 views
    This topic created in 1456 days ago, the information mentioned may be changed or developed.

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

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

    唯一的例外是,服务器完全不遵守标准,返回了压缩的数据却没带 content encoding 头,才会需要你处理
    BrJfUsTD
        3
    BrJfUsTD  
    OP
       May 17, 2022
    @Kinnice 如果上游没有压缩,看文档需要添加 gzip_proxied 参数确保 gzip 会压缩。但如果上游服务器已经压缩了,反代再压缩不是双重压缩了吗?看不懂……
    Kinnice
        4
    Kinnice  
       May 17, 2022
    @jinliming2 我看他的感觉不是为了多压缩的问题,而是实际的客户端也想使用 gzip
    jinliming2
        5
    jinliming2  
       May 17, 2022
    @BrJfUsTD 你开了压缩,反代的时候会判断的,上游没压缩才会压缩。如果上游已经压缩过了,nginx 会直接把上游压缩过的 body 数据直接透传下去,不会二次压缩。
    BrJfUsTD
        6
    BrJfUsTD  
    OP
       May 17, 2022
    @jinliming2 哦,也就是正常情况即便上游服务器配置了 gzip 压缩,但不知道客户端支持的压缩格式,就不处理压缩,直接返回未压缩数据给反代,然后反代再返回用户,那么正确做法是只在反代机上配置 gzip 咯?
    jinliming2
        7
    jinliming2  
       May 17, 2022
    @BrJfUsTD 对,一般在反代上做就行
    BrJfUsTD
        8
    BrJfUsTD  
    OP
       May 17, 2022
    @jinliming2 谢谢解答!
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3185 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 43ms · UTC 14:28 · PVG 22:28 · LAX 07:28 · JFK 10:28
    ♥ Do have faith in what you're doing.