现在越来越多的网站在使用Nginx,因此Nginx的优化变得尤为重要,特别是Nginx的gzip压缩优化。
gzip (GNU-ZIP) 是一种压缩技术,经过gzip压缩后页面大小可以变为原来的30%甚至更小,这样用户浏览页面的速度会快得多。gzip压缩页面需要浏览器和服务器双方都支持,实际上就是服务器端压缩,传到浏览器后浏览器解压并解析。浏览器那里不需要我们担心,因为目前绝大多数浏览器都支持解析gzip压缩过的页面。
在宝塔面板中,可以在网站设置里的配置文件最后的 } 前面,加入以下代码:
gzip on; #开启gzip压缩
gzip_vary on; #往头信息中添加压缩标识
gzip_min_length 1k; #当返回内容大于此值时才会使用gzip进行压缩,当值为0时,所有页面都进行压缩
gzip_proxied any; #nginx作为反向代理压缩服务端返回数据的条件,any为无条件压缩所有结果数据
gzip_comp_level 6; #设置压缩等级,一般3-6即可,太高会占用服务器资源太多
gzip_buffers 16 8k; #Nginx服务器需要向系统申请缓存空间为16个,每个缓存空间为8k
gzip_http_version 1.1; #指定压缩响应所需要的最低HTTP请求版本
gzip_types
image/svg+xml text/plain text/xml text/css text/javascript application/xml application/json application/xhtml+xml application/rss+xml application/javascript application/x-javascript application/x-font-ttf application/vnd.ms-fontobject font/opentype font/ttf font/eot font/otf; #允许压缩的媒体类型
}
上述代码修改以后,实际上是在服务器的nginx.conf文件的http模块新增了上述内容。
很多网站分享了一段类似的代码,但其实是有问题的,在 gzip_types 压缩文件类型后面,有一个 text/html 这个文件类型要去掉,如果加进去的话,nginx重载配置会出错,具体解决办法请参考相关文章。
另外,对于压缩文件类型 gzip_types,jpg、gif、png 等常用图片类型已经是压缩格式,再次经GZIP压缩,不仅会增加服务器资源开销,甚至还可能使文件不仅没减少反而会增大。所以,只需添加:html 、css 、js、txt、xml等文本文档的压缩即可,我们就没有必要对图片进行gzip压缩。
上述几步设置完毕,我们还必须将nginx重载配置方可生效,或者在Linux命令行下执行以下命令:
nginx -t
nginx -s reload
以上就是Nginx开启gzip压缩的具体方法。