分享互联网知识,建站、IT话题杂谈

Nginx不自动压缩css和js文件解决方案

在对网站优化的过程中,经常遇到一个问题,就是css和js文件没有启用Gzip的问题,尤其是一些带变量的js文件,例如“jquery.js?ver=1.11.2”。Nginx默认不启用Gzip,其实只需要在nginx.conf文件里添加一些设置即可打开,从而提供访问速度。

确定nginx.conf位置

nginx.conf文件位置可能不同,可使用下列方法查找:

  1. 终端内输入 "whereis nginx.conf"
  2. 终端内输入 "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压缩检测
网站整体测速优化检测建议:网站速度优化/测试网站

Leave a comment

Your email address will not be published. Required fields are marked *