给静态站加一层自建边缘缓存实录
站点迁到对象存储后回源延迟一直在两百毫秒上下,我在 VPS 上用 Nginx 加 proxy_cache 做了一层边缘缓存。做法是把静态资源按后缀分组设置不同的缓存时长,HTML 设短 TTL 并开启 stale-while-revalidate,再用 proxy_cache_lock 防止并发回源打穿。踩的坑有两个:一是默认 cache key 没带 Host 和 Accept-Encoding,导致不同域名和 gzip 版本互相串缓存;二是一开始把 5xx 也缓存了,源站故障时页面被钉死,后来用 proxy_cache_valid 只放行 200 和 301。实测命中率稳定在九成以上,回源延迟降到二十毫秒内,结论是静态站加自建缓存成本低、收益明确,但 key 设计和状态码白名单必须先想清楚。
站点迁到对象存储后回源延迟一直在两百毫秒上下,我在 VPS 上用 Nginx 加 proxy_cache 做了一层边缘缓存。做法是把静态资源按后缀分组设置不同的缓存时长,HTML 设短 TTL 并开启 stale-while-revalidate,再用 proxy_cache_lock 防止并发回源打穿。踩的坑有两个:一是默认 cache key 没带 Host 和 Accept-Encoding,导致不同域名和 gzip 版本互相串缓存;二是一开始把 5xx 也缓存了,源站故障时页面被钉死,后来用 proxy_cache_valid 只放行 200 和 301。实测命中率稳定在九成以上,回源延迟降到二十毫秒内,结论是静态站加自建缓存成本低、收益明确,但 key 设计和状态码白名单必须先想清楚。