我需要在nginx服务器上启用gzip压缩。正如我从firfox firebug NET工具中观察到的,我发现html文件是gzip压缩的。但不是javascript文件和CSS文件。
我已经检查了 Mime.types 和nginx配置文件 /etc/nginx/ngnix.conf ,但未发现任何问题。 仍然无法看到css和javascript Gzip压缩。 我的NGINX.conf条目如下
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;
答案 0 :(得分:114)
这是我目前在制作中使用的工作配置。
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进行测试。
答案 1 :(得分:28)
You can find example configuration from the html5 boilerplate code.
# 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;
答案 2 :(得分:6)
如果你的某些文件被压缩而某些文件没有被压缩,那么你的gzip工作正常,但你可能错过了 gzip_types 中的定义。例如,javascript文件可以在标题中返回以下任何类型:
要压缩所有javascript文件,所有三个定义都应包含在gzip_types中。
您需要检入响应标头为此类未压缩文件返回的内容类型,然后确保它也在gzip_types中定义。
答案 3 :(得分:1)
你的gzip条目是否在js,css等的nginx配置“范围”内。资产正在服务?我问,因为如果你使用某种框架,有时会有不同的位置{...}块来处理html请求与资产。
此外,当您在浏览器中进行测试时,请确保您进行了大量的刷新,以迫使服务器为您提供所有内容的“新副本”。
最后,您可以使用gzip_types *来允许任何内容被gzip压缩。如果这是一个好的做法,也许其他人可以插话。
答案 4 :(得分:1)
要压缩SVG,这一行是正确的:
image/svg+xml svg svgz;