nginx服务端配置gzip
nginx服务端配置gzip by niuzhiyong
Last updated
Was this helpful?
nginx服务端配置gzip by niuzhiyong
Last updated
Was this helpful?
介绍
brew install nginx
如果没有brew,需要安装brew
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
sudo nginx
OK, nginx就安装好了,可以在浏览器访问了,默认端口为8080,
在浏览器输入 http://localhost:8080/ 就能看到nginx在本计算机搭建的服务器
mac 命令行,可以
vim /usr/local/etc/nginx/nginx.conf
或者直接编辑器打开
如果找不到路径,可以查看mac的隐藏文件夹,用下面的命令显示隐藏文件
ctrl + shift + .
配置好之后要重启nginx
sudo nginx -s reload
配置参数
参数解析
参数
说明
默认值
gzip on/off
开启/关闭gzip压缩
默认是off
gzip_min_length 1k
允许压缩的页面最小字节数
默认为0
gzip_buffers 4 16k
系统获取几个单位的缓存用于存储gzip的压缩结果数据流,4 16k 代表以16k为单位,按照原始数据大小以16k为单位的4倍申请内存
gzip_http_version 1.1
设置http1.1协议才进行压缩
默认为1.1
gzip_comp_level 6
表示gzip的压缩级别,范围是1-9,数据越大,压缩的越小,耗CPU,传输更快,一般选择适中的级别
默认为1
gzip_types
设置哪种类型可以进行压缩,需要什么类型可以在参考nginx.conf同目录下的mime.types文件
默认是text/html
gzip_disable
禁用gzip的条件,这里表示禁用IE1-6的版本,因为低版本不支持gzip
gzip_vary on
给代理服务器用的,有的浏览器支持压缩,有的不支持,所以避免浪费不支持的也压缩,所以根据客户端的HTTP头来判断是否需要压缩
判断gzip是否起作用
举个例子:比如访问允许压缩的一个类型,我直接在浏览器地址上访问这个资源文件,在F12中的Network中观察请求,在请求中的Response Headers中如果有Content-Encoding: gzip就表示改文件是经过压缩传输的
注意: gzip压缩的出现如此的令人振奋,但是还有以下三个注意点:
低版本浏览器:一些浏览器接受压缩文件还是有问题(他们说他们可以但是他们并不行),如果你的站点必须在window95的网景1.0浏览器上,你可能不想要压缩文件。
已经压缩过的文件:大多数的图片,音乐和视频都已经压缩过了,不要浪费时间来压缩他们了。只压缩(HTML,CSS,JAVARSCRIPT)即可。
CPU负载:在传输过程中压缩文件耗费CPU但是节省带宽(用空间换时间)。通常压缩速率的选择需要权衡利弊。也存在一些预压缩静态文件的方法,但这要求更多的资源。考虑了cpu的耗费,压缩文件也是利大于弊。通过压缩实现更好的用户体验,更短的留白时间,值!
不建议压缩的文件:
1、图片类型
原因:图片如jpg、png本身就会有压缩,所以就算开启gzip后,压缩前和压缩后大小没有多大区别,所以开启了反而会白白的浪费资源。从下面的图中看出压缩图片的价值并不大
2、大文件
原因:会消耗大量的cpu资源,且不一定有明显的效果。(这个待测试)
压缩前
压缩后