今天想测试一下openresty, 结果发现gzip失效同时淘宝的nginx-http-concat也是小了,不过concat失效仅仅表现在js上,根据现象应该是mime类型导致的,所以下载了淘宝的tengine,发现其mime.types文件中关于js描述的一行和nginx或者openresty中的mime.types不同
nginx/openresty:
application/javascriptjs;
而tengine 的 mime.types中表现为:
application/x-javascriptjs;
综上所述, nginx的gzip模块和淘宝的concat模块获取在js文件类型都是的application/x-javascript
所以把application/x-javascript js;加入nginx/openresty的mime.types中,重启nginx问题就解决了~
1、Apache启用gzip
如果要开启gzip的话,一定要打开下面二个模块.
LoadModule headers_module modules/mod_headers. so
LoadModule deflate_module modules/mod_deflate. so
设置压缩比率,取值范围在 1(最低) 到 9(最高)之间,不建议设置太高,虽然有很高的压缩率,但是占用更多的CPU资源.
DeflateCompressionLevel 3
AddOutputFilter DEFLATE html xml php js css
<Location />
SetOutputFilter DEFLATE
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
SetEnvIfNoCase Request_URI \\.(?:gif|jpe?g|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .(?:pdf|mov|avi|mp3|mp4|rm)$ no-gzip dont-vary
Header append Vary User-Agent env=!dont-vary #对代理的设置
</Location>
下面二个测试网站
测试数据对css
Original Size: 44 KB
Gzipped Size: 10 KB
Data Savings: 77.27%
测试数据js
Original Size: 6 KB
Gzipped Size: 2 KB
Data Savings: 66.67%
测试数据php
Original Size: 62 KB
Gzipped Size: 15 KB
Data Savings: 75.81%
上面只是随机拿的几个数据,看的出来,使用了gzip压缩后文件小多了.
希望能帮上各位~有问题请在下方留言~我会第一时间回复