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

如何控制 proxy_pass 的 gzip 压缩

  •  
  •   AsaDong · May 12, 2014 · 7859 views
    This topic created in 4383 days ago, the information mentioned may be changed or developed.
    一种方法是
    proxy_set_header Accept-Encoding "";

    但如果后端强制gzip了呢 怎么gzip off
    Supplement 1  ·  May 12, 2014
    现在问题是要使用 ssi,后端gzip后,就没法正常ssi了。

    所以一种是 proxy_set_header Accept-Encoding ""; 可以关闭gzip
    但有的后端强制gzip了 无效,所以nginx proxy这层有木有办法搞定
    13 replies    2014-05-13 17:27:35 +08:00
    wangtai
        1
    wangtai  
       May 12, 2014
    我不知道应该怎么做,但是好奇为什么要gzip off?
    shiny
        2
    shiny  
    PRO
       May 12, 2014
    @wangtai 因为后端 gzip 一次,nginx 再 gzip 一次就出问题了。
    xoxo
        3
    xoxo  
       May 12, 2014
    nginx:
    gzip off;
    即可
    AsaDong
        4
    AsaDong  
    OP
       May 12, 2014
    现在问题是要使用 ssi,后端gzip后,就没法正常ssi了。

    所以一种是 proxy_set_header Accept-Encoding ""; 可以关闭gzip
    但有的后端强制gzip了 无效,所以nginx proxy这层有木有办法搞定
    jsonline
        5
    jsonline  
       May 12, 2014 via Android
    用SSI干啥?
    AsaDong
        6
    AsaDong  
    OP
       May 12, 2014
    @jsonline 页面include公用的内容 或者页面局部更新的块呀
    Livid
        7
    Livid  
    MOD
    PRO
       May 12, 2014   ❤️ 1
    nginx 有一个模块叫 gunzip,但是需要自己在编译的时候指定加进去,默认是没有的。

    http://nginx.org/en/docs/http/ngx_http_gunzip_module.html
    jsonline
        8
    jsonline  
       May 12, 2014 via Android
    @AsaDong 我是用grunt来include的
    AsaDong
        9
    AsaDong  
    OP
       May 12, 2014
    @Livid 谢谢livid 我试试哈
    wangtai
        10
    wangtai  
       May 12, 2014
    “从后端收到一个压缩过的文件,encoding应该是gzip。”
    “nginx会把数据发到gzip模块,是不是判断后端响应头,这个是gzip模块的逻辑了”
    我同事说的。
    ------
    以下我猜测的:
    你后端的响应头标记gzip了没?如果标记了,nginx是不是就不会重复做gzip了?nginx应该没有那么傻做两次gzip吧。
    AsaDong
        11
    AsaDong  
    OP
       May 12, 2014
    @wangtai 后端gzip了,问题是proxy_pass 收到的数据如果是gzip的就无法ssi。
    通过设置proxy_set_header Accept-Encoding ""; 可以取消部分项目的gzip。 但有的无效,所以问题在这里 怎么强制proxy到的数据不压缩
    HowardMei
        12
    HowardMei  
       May 12, 2014
    @AsaDong 让nginx处理不挺好么,还有啥性能比得过它?
    julyclyde
        13
    julyclyde  
       May 13, 2014
    你后端不标准
    未经客户端要求,服务器不得私自决定gzip
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3185 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 55ms · UTC 14:28 · PVG 22:28 · LAX 07:28 · JFK 10:28
    ♥ Do have faith in what you're doing.