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.comhttps://varvy.com/tools/gzip测试服务器的gzip压缩功能是否生效。在whatismyip.org网站上可以比较压缩前后的网页大小对比。在下图中可以看到,压缩前网页为96KB,压缩后为14.3KB,压缩效果非常明显。

gzip压缩效果图

找出未压缩的网页文件

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。

gzip压缩得分

为这篇文章评分
[Total: 1 Average: 3]

Leave a Reply

Your email address will not be published.

The maximum upload file size: 2 MB. You can upload: image, audio, video, document, spreadsheet, interactive, text, archive, code, other. Links to YouTube, Facebook, Twitter and other services inserted in the comment text will be automatically embedded. Drop file here