Nginx2026-04-15·8 分钟
Nginx 缓存与 CDN 结合实践
介绍 Nginx 缓存配置、CDN 集成和静态资源加速的常见方案。
Nginx 缓存与 CDN 结合实践
1. 启用缓存头
nginx
location ~* \.(css|js|png|jpg|jpeg|gif|svg)$ {
expires 30d;
add_header Cache-Control "public, max-age=2592000, immutable";
}- 为静态资源设置长缓存,提高浏览器命中率。
immutable适合不常变更的文件。
2. 缓存中间件与代理缓存
nginx
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=mycache:10m max_size=10g inactive=60m;
proxy_cache_key "$scheme$proxy_host$request_uri";nginx
location /api/ {
proxy_cache mycache;
proxy_cache_valid 200 30s;
proxy_pass http://backend;
}3. CDN 集成方式
- 将
origin设为 Nginx 服务器。 - 通过
Cache-Control控制 CDN 缓存策略。 - 使用
surrogate-control或stale-while-revalidate提升容灾性能。
4. 缓存刷新与失效
- 通过缓存键设计支持按路径或参数失效。
- 对于动态内容,可设置较短
proxy_cache_valid。
5. 压缩与缓存协同
- 启用
gzip避免 CDN 缓存多个压缩版本的问题。 - 使用
gzip_static可提升静态资源压缩效率。
6. CDN 与 HTTPS
- CDN 与 Origin 之间建议也使用 HTTPS。
- 确保 Nginx 配置 TLS 有效证书与安全协议。
7. 故障与回退
- 当 CDN 缓存错误时,
proxy_cache_use_stale可继续返回旧缓存。 - 对高并发场景使用
proxy_cache_lock防止缓存击穿。
8. 监控缓存效果
- 分析
X-Cache、X-Cache-Status响应头。 - 观察命中率与回源率,调整缓存策略。
Nginx缓存CDN