原始站点的静态文件的 HTTP Response Headers 里没有 Expires 和 Cache-Control ,于是在代理的时候指定了 7 天的缓存:
location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml|txt|pdf)$ {
proxy_pass_header Server;
proxy_http_version 1.1;
proxy_set_header Connection "";
set $cache_key_scheme $scheme;
set $cache_key $cache_key_scheme://$host$uri$is_args$args;
proxy_set_header Host static.example.com;
proxy_cache c1;
proxy_cache_key $cache_key;
proxy_ignore_headers X-Accel-Expires Expires Cache-Control;
proxy_cache_valid 200 301 302 7d;
proxy_cache_valid 403 404 500 0s;
add_header X-Cache-Status "$upstream_cache_status";
proxy_pass http://origin_http;
}
但是测试的时候发现,才过了几分钟就会看到 X-Cache-Status
的值是 EXPIRED
。
NGINX 版本是 1.11.*,会是哪些方面的原因呢?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.