代码之家  ›  专栏  ›  技术社区  ›  Rotem jackoby

Google云负载均衡器不返回内容编码:gzip

  •  0
  • Rotem jackoby  · 技术社区  · 6 年前

    当我直接访问nginx服务器时,我可以看到“Content Encoding:gzip”头(左侧)。

    enter image description here

    我已经在nginx配置文件中启用了gzip-proxied:

    server {
    
       listen 80;
        gzip on;
        gzip_vary on;
        gzip_proxied any;  // <------ Here
        gzip_types text/plain text/css text/js text/xml text/javascript application/javascript application/x-javascript application/json application/xml application/rss+xml image/svg+xml;
    
        access_log  /var/log/nginx/access.log;
        error_log   /var/log/nginx/error.log;
    
        root /usr/share/nginx/html;
        index index.html index.htm;
    
        location / {
            gzip_static on;
            if ($http_x_forwarded_proto = "http") {
                return 301 https://$host$request_uri;
            }
            try_files $uri $uri/ /index.html;
        }
    }
    

    不起作用的相关链接:

    Google Cloud HTTP Balancer and gzip

    有什么想法吗?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Md Zubayer    6 年前

    云负载平衡器不会压缩或解压缩响应本身。它们提供由后端实例生成的响应,后端实例使用 gzip 。您需要启用 gzip proxied .

    为了在负载平衡器响应中包含此头,在nginx配置文件中,可能需要设置一个接受编码头并修改用户代理以包含中提到的字符串代理 this document .

    接受编码:gzip

    用户代理:我的程序(gzip)