如何从内部网络关闭IP的gzip内容编码?

时间:2019-06-25 05:37:16

标签: nginx

我想为来自网络外部的请求启用GZIP。

我在nginx.conf中尝试了以下配置,但/etc/nginx/nginx.conf:64错误中不允许出现“ gzip”指令

nginx.conf

http {
    geo $no_gzip_list {
       default         0;
       10.0.0.0/8      1;
       172.16.0.0/12   1;
       192.168.0.0/16  1;
    }
    gzip on;

    server {
        if ($no_gzip_list = 0) {
            gzip off; #<--Line 64
        }
    }
}

我做错了什么?或如何为外部请求启用gzip并为内部请求禁用gzip?

1 个答案:

答案 0 :(得分:2)

官方文档说,您可以在“ http,服务器,位置,如果在位置”内使用gzip。

Syntax: gzip on | off;
Default:    
gzip off;
Context:    http, server, location, if in location

因此,这意味着您必须将其移动到位置块内。

请查看以下示例:

http {

    geo $no_gzip_list {
       default         0;
       10.0.0.0/8      1;
       172.16.0.0/12   1;
       192.168.0.0/16  1;
    }

    gzip on;

    server {
        location / {
            ... # YOUR CODE

            if ($no_gzip_list) {
                gzip off;
            }
        }
    }
}

希望有帮助!