Nginx 是一个高性能的 HTTP 和反向代理服务器,广泛用于网站部署和负载均衡。缓存是提高网站性能的重要手段,但有时需要清理缓存以反映最新的内容更改。
在文件名中添加版本号或哈希值,确保每次更新后文件名不同,从而强制浏览器加载新文件。
<!-- 旧方式 -->
<script src="script.js"></script>
<!-- 新方式 -->
<script src="script.v2.js"></script>
通过设置适当的 HTTP 头来控制缓存行为。
location ~* \.(js|jpg|png)$ {
expires 1d; # 设置缓存时间为1天
add_header Cache-Control "public, no-transform";
}
如果使用 Nginx 的 proxy_cache 功能,可以通过以下命令手动清除缓存:
nginx -s delete /path/to/cache/directory/*
结合 CI/CD 流程,在每次部署时自动更新文件名或清除缓存。
假设我们有一个 Nginx 配置文件 nginx.conf
,用于缓存静态资源:
http {
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off;
server {
listen 80;
server_name example.com;
location /static/ {
proxy_pass http://backend;
proxy_cache my_cache;
proxy_cache_valid 200 302 10m;
proxy_cache_valid 404 1m;
add_header X-Proxy-Cache $upstream_cache_status;
}
}
}
在这个配置中:
/var/cache/nginx
是缓存目录。my_cache
是缓存区域的名称。proxy_cache_valid
设置不同 HTTP 状态码的缓存时间。通过合理设置缓存策略和使用版本控制,可以有效管理 Nginx 缓存,确保用户始终获取最新的内容。手动清除缓存或结合自动化工具可以进一步提高效率和可靠性。
领取专属 10元无门槛券
手把手带您无忧上云