Nginx 启用 gzip
Nginx enable gzip
我想在我的 nginx 服务器上启用 gzip 压缩。 nginx.conf 文件在这里:
http {
# Enable Gzip
server {
location ~* \.(?:ico|woff|css|js|gif|jpe?g|png)$ {
expires 30d;
add_header Pragma public;
add_header Cache-Control "public";
}
location /api {
try_files $uri $uri/ /api/index.php;
}
location / { ##merge
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;
try_files $uri $uri/ /index.php?q=$uri&$args;
}
location ~ "\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+" { add_header "" ""; }
location ~ "^/ngx_pagespeed_static/" { }
location ~ "^/ngx_pagespeed_beacon" { }
}
}
很遗憾,gzip 压缩不起作用,Google Pagespeed 和 Gtmetrix 未检测到这一点。
我可以在哪里放置 gzip conf?
在 http{}
server{}
或 location{}
标签中?
我已经在 http
和 location
标签中尝试过
您可以将 gzip 配置放在任何地方,但如果您想将其应用于所有网站/文件,最好将其放在 http 部分 - 这将成为所有服务器和位置块的默认设置。我也会 "shorten" / 将您的配置更改为以下内容:
http {
gzip on;
gzip_min_length 500;
gzip_proxied any;
gzip_comp_level 4;
gzip_types 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_vary on;
gzip_disable "msie6";
... here come your server blocks / rest of your config
}
我使用该配置并且对我来说效果很好 - 您也可以先在浏览器中测试它(例如使用 Firebug),然后再使用外部服务进行测试。
仅当您实际为 Nginx 生成 gzip 文件(如文件名 + .gz)时,使用 gzip_static 才有意义,因此这与启用 gzip 无关,应该只是可能的第二步。
我想在我的 nginx 服务器上启用 gzip 压缩。 nginx.conf 文件在这里:
http {
# Enable Gzip
server {
location ~* \.(?:ico|woff|css|js|gif|jpe?g|png)$ {
expires 30d;
add_header Pragma public;
add_header Cache-Control "public";
}
location /api {
try_files $uri $uri/ /api/index.php;
}
location / { ##merge
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;
try_files $uri $uri/ /index.php?q=$uri&$args;
}
location ~ "\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+" { add_header "" ""; }
location ~ "^/ngx_pagespeed_static/" { }
location ~ "^/ngx_pagespeed_beacon" { }
}
}
很遗憾,gzip 压缩不起作用,Google Pagespeed 和 Gtmetrix 未检测到这一点。
我可以在哪里放置 gzip conf?
在 http{}
server{}
或 location{}
标签中?
我已经在 http
和 location
标签中尝试过
您可以将 gzip 配置放在任何地方,但如果您想将其应用于所有网站/文件,最好将其放在 http 部分 - 这将成为所有服务器和位置块的默认设置。我也会 "shorten" / 将您的配置更改为以下内容:
http {
gzip on;
gzip_min_length 500;
gzip_proxied any;
gzip_comp_level 4;
gzip_types 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_vary on;
gzip_disable "msie6";
... here come your server blocks / rest of your config
}
我使用该配置并且对我来说效果很好 - 您也可以先在浏览器中测试它(例如使用 Firebug),然后再使用外部服务进行测试。
仅当您实际为 Nginx 生成 gzip 文件(如文件名 + .gz)时,使用 gzip_static 才有意义,因此这与启用 gzip 无关,应该只是可能的第二步。