所以基本上我想要做的是让 nginx 的缓存每天 24:00 过期。我知道我可以使用 nginx-cache-purge 之类的工具,或者只是手动删除磁盘上的缓存文件,但我更喜欢让 nginx 自己处理这个问题。这可能吗?任何帮助都值得感激。
答案1
有一个proxy_cache_purge您可以使用接入点来清除缓存的方向。
然后您可以curl
在 cron 作业内部使用它并在特定时间执行它。
答案2
您可以X-Accel-Expires
在应用程序响应中使用值为“@epoch”的标头来设置自纪元以来的绝对时间(以秒为单位),响应可能会被缓存到该时间。
http://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_cache_valid
因此,例如使用 BSD,date
您可以使用date -j -v23H -v59M -v59S +"@%s"
X-Accel-Expires 标头的结果或您使用的编程语言的任何类似函数。