Enable GZIP for CSS and JS files on NGINX server for Magento
我需要在nginx服务器上启用gzip压缩。正如我从firefox firebug NET工具中观察到的那样,我发现html文件是gzip压缩的。但不是javascript文件和CSS文件。
我已经检查了Mime.types和nginx配置文件/etc/nginx/ngnix.conf,没有发现任何问题。
仍然看不到CSS和javascript Gzip压缩。
我的NGINX.conf条目如下
1 2 3 4 5 6 7 8 9 | gzip on; gzip_disable"msie6"; gzip_vary on; gzip_proxied any; gzip_comp_level 6; gzip_buffers 16 8k; gzip_http_version 1.1; gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; |
这是我目前在生产环境中使用的有效配置。
http://pastie.org/10870547
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | gzip on; gzip_disable"msie6"; gzip_comp_level 6; gzip_min_length 1100; gzip_buffers 16 8k; gzip_proxied any; gzip_types text/plain text/css text/js text/xml text/javascript application/javascript application/json application/xml application/rss+xml image/svg+xml; |
此配置已通过tools.pingdom.com。
进行了测试。
您可以从html5样板代码中找到示例配置。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | # Enable Gzip gzip on; gzip_http_version 1.0; gzip_comp_level 2; gzip_min_length 1100; gzip_buffers 4 8k; gzip_proxied any; gzip_types # text/html is always compressed by HttpGzipModule text/css text/javascript text/xml text/plain text/x-component application/javascript application/json application/xml application/rss+xml font/truetype font/opentype application/vnd.ms-fontobject image/svg+xml; gzip_static on; gzip_proxied expired no-cache no-store private auth; gzip_disable "MSIE [1-6]\\."; gzip_vary on; |
如果某些文件被压缩而另一些文件未压缩,则说明您的gzip工作正常,但是您可能错过了gzip_types中的定义。例如,javascript文件可能在标头中返回以下任何类型的内容:
- 应用程序/ javascript
- 应用程序/ x-javascript
- 文字/ javascript
要压缩所有javascript文件,所有三个定义都应包含在gzip_types中。
您需要在响应头中检入此类未压缩文件返回的内容类型,然后确保在gzip_types中也定义了该内容类型。
要压缩SVG,此行是正确的:
1 | image/svg+xml svg svgz; |
您的gzip条目是否位于js,css等的nginx配置" scope "中?资产被送达?我问,因为如果您使用的是某种框架,有时会使用不同的位置{...}块来处理html请求和资产。
另外,当您在浏览器中进行测试时,请确保进行硬刷新以强制服务器为您提供所查看内容的"新副本"。
最后,您可以使用gzip_types *来压缩所有内容。如果这不是一个好的做法,也许其他人也可以插话。