今天刚开始研究nginx
和它的gzip
压缩功能,从官网下载了一个 windows
稳定版本的 nginx
,然后解压到c
盘,通过cmd
,执行start nginx
,然后在浏览器地址栏输入http://localhost
,可以看到如下界面:
至此,可以证明nginx
已经开发发挥作用了,然后网上查了一些配置信息,并修改C:\nginx-1.12.2\conf\nginx.conf
文件,在http节点
添加如下配置:
gzip on;
gzip_comp_level 4;
gzip_buffers 4 16k;
gzip_types text/plain text/css application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript;
#gzip_min_length 1k;
gzip_http_version 1.1;
再次访问http://localhost
,并通过f12
监听该请求,在response
头并没有发现任何gzip
的蛛丝马迹(印象用,有的站点相应存在过gzip
字眼),请问,我错在什么地方呢?我做这些简单的操作如何能证明gzip
已经开始生效了呢?
nginx输出gzip有很多条件:
gzip on;
gzip_types
定义了content-type
,需要注意的是text/html
是强制性的,不需要也不能再添加content-type
在gzip_types
里content-length
大于等于nginx
配置的gzip_min_length
,默认是20字节accept-encoding
并且值包含gzip
以上是相关配置
通过浏览器的开发者工具可以查看,也可以使用命令行工具
比如
curl http://example.com/index.html --compressed
,curl
的--compressed
参数会在请求头加上Accept-Encoding: deflate, gzip
需要看响应的body大小,可以用
curl -v
,会打印相关信息也可以用
curl -w "%{size_download}"