nginx开启gzip压缩和缓存


gzip压缩在网站优化加速是不可少的优化Nginx开启Gzip压缩大幅提高页面加载速度开启Gzip压缩大幅提高页面加载速度
lnmp一健安装包 默认 具备这些优化
打开Nginx配置文件
vim /usr/local/nginx/conf/nginx.conf
 找到如下一段
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
#gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
gzip_vary off;
gzip_disable "MSIE [1-6]\.";
 第1行 开启Gzip
 第2行 不压缩临界值 大于1K的才压缩 一般不用改
 第3行 buffer 就是 嗯 算了不解释了 不用改
 第4行 用了反向代理的话 末端通信是HTTP/1.0 有需求的应该也不用看我这科普文了 有这句的话注释了就行了 默认是HTTP/1.1
 第5行 压缩级别 1-10 数字越大压缩的越好 时间也越长 看心情随便改吧.这里福利老幺需要补充一下,虽说压缩数字是越大越好,但其实是很占用CPU的,所以大家见好就收吧.一般按默认设置为2即可.
 第6行 进行压缩的文件类型 缺啥补啥就行了 JavaScript有两种写法 最好都写上吧 总有人抱怨js文件没有压缩 其实多写一种格式就行了
 第7行 跟Squid等缓存服务有关 on的话会在Header里增加"Vary: Accept-Encoding" 我不需要这玩意 自己对照情况看着办吧
 第8行 IE6对Gzip不怎么友好 不给它Gzip了
 接下来,我们直接wq保存退出 重新加载Nginx
 /usr/local/nginx/sbin/nginx -s reload
 用curl测试Gzip是否成功开启
 网上这一方面的工具也有很多,大家也可以使用在线工具来查看是否压缩成功.
查看网站中的图片是否成功压缩,命令如下:
 curl -I -H "Accept-Encoding: gzip, deflate" "https://www.fuli121.com/wp-content/uploads/2016/09/360front1.jpg"
 您可以将后面的地址修改为您的网站中的css文件路径或者js路径来查看.
 Nginx启用Gzip压缩js无效的原因
 另外,这里福利老幺再补充一下,Nginx启用Gzip压缩js无效的原因,基本都是因为content-type的内容来同造成的.
 各网站的JS类型“content-type”内容不尽相同 Nginx配置gzip是要把各种类型文件的“content-type”内容加进去才行 不加进去就不能被压缩.
 当发现Nginx压缩JS没有成功时 可先查看网站JS的Header信息 如图1那样检测(地址 由此直达.) 便可获得js文件的“content-type”内容.获得其“content-type”内容 再看看配置文件的gzip_types里有没有此项内容 如果没有 加入去即可解决问题.
 开启字体gzip压缩
 一般来说,我们只需要为 ttf、otf 和 svg 字体启用 gzip 对其他字体格式进行 gzip 压缩时效果不明显.
 gzip_types  font/ttf font/otf image/svg+xml
 也就是将上面的代码中加入font/ttf font/otf image/svg+xml这三种格式
成功修改后的格式
 gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png font/ttf font/otf image/svg+xml;
 ginx设置CSS,JS,图片等缓存
 一般情况下,默认都是会设置这些主要文件的缓存的.配置如下:
 location ~* ^.+\.(ico|gif|jpg|jpeg|png)$ {
    access_log   off;
    expires      30d;
}
location ~* ^.+\.(css|js|txt|xml|swf|wav)$ {
access_log   off;
expires      24h;
}
location ~* ^.+\.(html|htm)$ {
    expires      1h;
}
 nginx设置字体缓存
默认不会有字体缓存 可以加入这些设置
Vim打开Nginx配置文件
vim /usr/local/nginx/conf/nginx.conf
在里面加入以下内容
 location ~* ^.+\.(eot|ttf|otf|woff|svg)$ {
    access_log   off;
    expires max;
}