Nginx服务器如何启用gzip压缩功能
压缩的好处
压缩可以减小HTTP回复的大小,从而降低web服务器的响应时间。gzip是web服务器广泛使用的压缩工具,可以将HTTP回复的大小降低到原来的50%~30%。既提高了网页的加载速度,又可以节约服务器流量。
Nginx服务器启用gzip压缩的方法
打开/etc/nginx/nginx.conf
配置文件
vi /etc/nignx/nginx.conf
将下面的文字粘贴到 http 部分,如果配置文件中有下面的文字,但前面有个#符号,那么将对应的#符号去掉就行了。
gzip on;
gzip_comp_level 2;
gzip_http_version 1.1;
gzip_proxied any;
gzip_min_length 1100;
gzip_buffers 16 8k;
gzip_types text/plain text/html text/css application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript;
# Disable for IE < 6 because there are some known problems
gzip_disable "MSIE [1-6].(?!.*SV1)";
# Add a vary header for downstream proxies to avoid sending cached gzipped files to IE6
gzip_vary on;
保存文件后,重启加载nginx配置文件:
sudo /etc/init.d/nginx reload
测试gzip压缩是否生效
输入如下命令,将域名替换成自己的域名。
curl --header "Accept-Encoding: gzip,deflate,sdch" -I http://blog.musclewiki.cn
如果在输出结果中有Content-Encoding: gzip
,说明gzip压缩功能在正常工作。
HTTP/1.1 200 OK
Server: nginx/1.9.5
Date: Fri, 02 Oct 2015 16:42:22 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
Vary: Accept-Encoding
X-Pingback: http://blog.musclewiki.cn/index.html
Content-Encoding: gzip
你也可以在 https://varvy.com/tools/gzip 测试服务器的gzip压缩功能是否生效。在 https://www.whatismyip.org/ 网站上可以比较压缩前后的网页大小对比。在下图中可以看到,压缩前网页为96KB,压缩后为14.3KB,压缩效果非常明显。
找出未压缩的网页文件
在 https://gtmetrix.com/ 网站上,输入自己的域名后,gtmetrix
便会测试网页的性能。在性能报告里,gtmetrix
会列出没有经过gzip压缩的网页文件。如下图,我的网站有一个js文件和一个css文件没有压缩。
未压缩的原因
在/etc/nginx/nginx.conf
文件中,我将gzip_min_length
的长度设为1100B
,文件必须大于或等于1100B才会被Nginx压缩。而在上图中可以发现,未压缩的js文件不足900B,未压缩的css文件不足800B,所以它们没有被压缩。将gzip_min_length设置为500后,重新加载Nginx配置文件,再重新用 gtmetrix
测试。结果所有的文件都被压缩了,在压缩这一项得分为100。