在Nginx安装完成以后,咱们能够开启Gzip压缩功能,这里Nginx默认只能对text/html类型的文件进行压缩。下面的指令为开启Gzip的指令:javascript
gzip on; gzip_http_version 1.0; gzip_disable "MSIE [1-6]."; gzip_types text/plain application/x-javascript text/css text/javascript;
若是要可以是Nginx开启图片压缩功能,在配置文件中添加以下代码:php
gzip_types text/plain application/x-javascript text/css text/javascript application/x-httpd-php image/jpeg image/gif image/png;
这里须要注意一下:css
1.在gzip_http_version的默认值是1.1,就是说对HTTP/1.1协议的请求才会进行gzip压缩。
若是使用了proxy_pass进行反向代理,那么nginx和后端的upstream server之间是用HTTP/1.0协议通讯的
若是使用nginx经过反向代理作Cache Server,前端的nginx没有开启gzip,且后端的nginx上未设置gzip_http_version为1.0,那么Cache的url将不会被gzip压缩。html
2.gzip_disable的设置是禁用IE6的gzip压缩
IE6的某些版本对gzip的压缩支持不是很好,会形成页面的假死。
对img进行gzip后会形成IE6的假死,把对img的gzip压缩去掉后就正常了。
为了确保其它的IE6版本不出问题,因此加上了gzip_disable配置项。前端
gzip_min_length 1000;
设置容许压缩的页面最小字节数,页面字节数从header头中的Content-Length中进行获取。java
默认值是0,无论页面多大都压缩。
建议设置成大于1k的字节数,小于1k可能会越压越大。 即: gzip_min_length 1024nginx
gzip_proxied expired no-cache no-store private auth;
Nginx做为反向代理的时候启用,开启或者关闭后端服务器返回的结果,匹配的前提是后端服务器必需要返回包含”Via”的 header头。后端
自用版以下服务器
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 application/x-httpd-php image/jpeg image/gif image/png; gzip_vary on; gzip_disable "MSIE [1-6]\.";