nginx 设置 gzip http 版本

设置gzip_http_version

使用ab 测试网站,参数如下

ab -n 50 -c 10 -H "Accept-Encoding: gzip, deflate" https://example.com/

发现返回的文档没有被压缩,查看nginx日志也显示返回的是原始大小,查询资料后发现是nginx 配置gzip_http版本问题

gzip on;

gzip_vary on;
gzip_min_length 1k;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1

gzip_http_version 设置为了1.1,而 ab只支持http_version:1.0,改为1.0即可。

gzip_http_version 1.0

再次测试,返回数据是被压缩后的数据,从nginx日志也可以看到数据是压缩后的。类似的ab 的工具还有siege,可以很好的支持http 1.1

小结

nginx配置中,有些属性如果没有显示的进行设置,比如设置gzip on;时,没有设置gzip_http_versionnginx会启用默认值 gzip_http_version:1.1;,所以当你不想限制http_version的最低版本时,仅仅把gzip_http_version注释掉是不行的,你必须给其赋一个值才可以。类似这种问题不光在nginx配置中需要注意,在其它软件配置文件中也要注意