在对网站优化的过程中,经常遇到一个问题,就是css和js文件没有启用Gzip的问题,尤其是一些带变量的js文件,例如“jquery.js?ver=1.11.2”。Nginx默认不启用Gzip,其实只需要在nginx.conf文件里添加一些设置即可打开,从而提供访问速度。
确定nginx.conf位置
nginx.conf文件位置可能不同,可使用下列方法查找:
- 终端内输入 "whereis nginx.conf"
- 终端内输入 "nginx -V"
开启Nginx Gzip
在找到nginx.conf位置后(debian系统可能在/etc/nginx/nginx.conf),找到
gzip on;
如果被注释则去掉注释符号,并在下方添加如下几行,最终看起来应该是这样:
gzip on; gzip_disable "msie6"; gzip_min_length 20; gzip_vary on; gzip_proxied any; gzip_comp_level 6; gzip_buffers 16 8k; gzip_http_version 1.1; gzip_types text/plain text/css application/javascript text/xml application/xml+rss;
修改完之后,需要重启nginx:
service nginx restart
其实,如果使用的是本站的脚本,上面的工作用一行命令可以完成:
sed -i s/'# gzip_'/'gzip_'/g & service nginx restart
在其它一些参考资料中,最后一行稍有不同可能会造成js和css文件没有启用gzip压缩,替换成上方最后一行后得以解决。
#gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; # 上面一行可能会造成个别js文件或cs文件不能被压缩
如果想用对字体也开启Gzip,可以加入如下内容
gzip_types font/ttf font/otf image/svg+xml;
参考资料
启用缓存和gzip:加速nginx: 开启gzip和缓存
检测是否启用gzip: 网页GZIP压缩检测
网站整体测速优化检测建议:网站速度优化/测试网站