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圧縮が機能せず、GooglePagespeedとGtmetrixはこれを検出しません。
Gzip confはどこに配置できますか?
の中に http{}
server{}
またはlocation{}
鬼ごっこ?
私はすでにhttp
タグとlocation
タグでも試しました
Gzip構成はどこにでも配置できますが、すべてのWebサイト/ファイルに適用する場合は、httpセクションに配置するのが最適です。これがすべてのサーバーおよびロケーションブロックのデフォルトになります。また、構成を次のように「短縮」/変更します。
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を使用)。
Gzip_staticの使用は、実際にNginxのgzipファイルを(ファイル名+ .gzとして)生成する場合にのみ意味があります。したがって、これはgzipの有効化とは関係がなく、可能な2番目のステップにすぎません。