如何强制更新群晖NAS Web Station中Nginx站点的缓存?
解决群晖Web Station网站缓存更新问题的方案
方案1:利用Web Station内置的自定义配置(推荐)
群晖Web Station支持添加不会被覆盖的Nginx自定义规则,无需修改会被重置的sites-enabled文件:
- 打开Web Station,进入目标网站对应的「虚拟主机设置」
- 切换到「高级设置」标签,找到「自定义配置」选项
- 在输入框中添加缓存控制的Nginx规则,示例如下:
# 给静态资源设置10分钟短缓存,修改后快速生效 location ~* \.(css|js|png|jpg|jpeg|gif|ico)$ { expires 10m; add_header Cache-Control "public, max-age=600"; } # 对HTML文件禁用缓存,确保每次加载最新内容 location ~* \.(html|htm)$ { expires -1; add_header Cache-Control "no-store, no-cache, must-revalidate, proxy-revalidate"; } - 保存后,在群晖「控制面板-服务」中重启Web Station或Nginx服务即可生效
方案2:给静态资源加版本号(省心的非技术方案)
无需修改任何配置,每次更新内容时给静态文件加版本后缀:
- 比如把
style.css改成style.v2.css,script.js改成script.v3.js - 同步修改网页里对应文件的引用链接
- 浏览器会识别为新文件,自动加载最新版本,不用员工手动清缓存
方案3:添加持久化的Nginx自定义配置文件
如果Web Station内置配置不生效,可在Nginx全局配置目录添加不会被覆盖的文件:
- 先在群晖「控制面板-终端机和SNMP」开启SSH功能,通过SSH登录NAS
- 创建自定义配置文件:
sudo nano /usr/local/etc/nginx/conf.d/custom-cache.conf - 粘贴方案1中的缓存规则,按
Ctrl+O回车保存,再按Ctrl+X退出 - 重启Nginx服务:
sudo systemctl restart nginx - 该目录下的配置文件不会被Web Station或NAS重启覆盖
内容的提问来源于stack exchange,提问作者hderic
相关产品推荐
相关产品推荐

