nginx/pagespeed モジュールに問題があります。画像のキャッシュ時間は、最初のページ読み込み時にデフォルトで 5 分です。
私の nginx.conf には次の内容があります:
##
# PageSpeed
##
pagespeed on;
pagespeed FileCachePath /var/ngx_pagespeed_cache;
pagespeed Domain https://example.com;
pagespeed Domain *.example.com;
pagespeed MapOriginDomain "http://localhost" "https://example.com";
pagespeed LoadFromFile "https://example.com" "/usr/share/nginx/www/";
pagespeed LoadFromFileRuleMatch Disallow \.php$;
pagespeed XHeaderValue "Powered By ngx_pagespeed";
pagespeed ListOutstandingUrlsOnError on;
pagespeed EnableFilters extend_cache;
# image related
pagespeed EnableFilters rewrite_images;
pagespeed EnableFilters convert_gif_to_png;
pagespeed EnableFilters convert_jpeg_to_progressive;
pagespeed EnableFilters strip_image_color_profile;
pagespeed EnableFilters strip_image_meta_data;
pagespeed EnableFilters jpeg_subsampling;
pagespeed EnableFilters lazyload_images;
# code related
pagespeed EnableFilters collapse_whitespace;
# DNS related
pagespeed EnableFilters insert_dns_prefetch;
# JS related
pagespeed UseExperimentalJsMinifier on;
pagespeed EnableFilters rewrite_javascript;
pagespeed EnableFilters combine_javascript;
# css related
pagespeed EnableFilters rewrite_css;
pagespeed EnableFilters prioritize_critical_css;
pagespeed EnableFilters combine_css;
pagespeed EnableFilters outline_css;
pagespeed EnableFilters flatten_css_imports;
デフォルトの 5 分のキャッシュ時間を変更するにはどうすればよいですか? ページスピード モジュールを介して最初のページ読み込み時に画像を渡すにはどうすればよいですか?
それは役に立ちませんでした:
location ~* \.(jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$ {
expires 1y;
access_log off;
add_header Cache-Control "public";
try_files $uri =404;
}
location ~* \.(pdf|js|css|swf)$ {
expires 1M;
access_log off;
add_header Cache-Control "public";
try_files $uri =404;
}
答え1
からドキュメント
PageSpeed は、HTTP または HTTPS 経由でリソースを取得するときに、Expires ヘッダーと Cache-Control ヘッダーを調べて、キャッシュを更新する頻度を決定します。これらのヘッダーでタイムアウトが指定されていない場合は、デフォルトの 5 分のタイムアウトが使用されます。これをオーバーライドするには、次のように指定します。
pagespeed ImplicitCacheTtlMs implicit_cache_ttl_in_milliseconds;