如何强制在反向代理后面使用gzip?

时间:2018-05-29 11:45:43

标签: nginx gzip reverse-proxy

我想使用nginx作为反向代理,我真的想优化nginx和后端之间的通信。我们传输的有效负载在未压缩时大约为1Mb文本,反向代理和服务器位于不同的数据中心。

我的理解和我所做的测试向我展示了反向代理和后端之间的压缩取决于客户端请求。

但这不是最佳的,因为如果客户端在读取反向代理响应时没有配置为使用gzip,则没有理由不在nginx和后端服务器之间使用gzip。

我想强制反向代理和后端之间的通信使用gzip,即使客户端没有请求它。

我设法让它工作但我不确定它是否配置良好,特别是因为我需要强制Accept标题。

我的想法是在代理请求时强制Accept-Encoding: gzip,如果客户端没有请求gzip,则使用gunzip。

upstream backend {
    server fqdn:443;
    keepalive 32;
}

server {
  listen   8080;

  gzip on;
  gunzip on;
  gzip_proxied any;
  gzip_vary on;
  gzip_types 
        text/css
        text/javascript
        text/xml
        text/plain
        application/javascript
        application/x-javascript
        application/json;

  proxy_buffering "off";
  proxy_http_version 1.1;

  location / {
    proxy_set_header "Accept-Encoding" "gzip";
    proxy_pass   https://backend;
  }
}

我必须强制这个标题是正常的吗?

为什么gzip_proxied any还不够?

提前致谢

0 个答案:

没有答案