Nginx服务器如何启用gzip压缩功能
压缩的好处
压缩可以减小HTTP回复的大小,从而降低web服务器的响应时间。gzip是web服务器广泛使用的压缩工具,可以将HTTP回复的大小降低到原来的50%~30%。既提高了网页的加载速度,又可以节约服务器流量。
Nginx服务器启用gzip压缩的方法
打开/etc/nginx/nginx.conf配置文件
sudo 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://www.linuxdashen.com
如果在输出结果中有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://www.linuxdashen.com/xmlrpc.php
Content-Encoding: gzip
你也可以在http://www.gziptest.com或https://varvy.com/tools/gzip测试服务器的gzip压缩功能是否生效。在whatismyip.org网站上可以比较压缩前后的网页大小对比。在下图中可以看到,压缩前网页为96KB,压缩后为14.3KB,压缩效果非常明显。
找出未压缩的网页文件
在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。