是否可以让 nginx 缓存在特定时间过期?

是否可以让 nginx 缓存在特定时间过期?

所以基本上我想要做的是让 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 标头的结果或您使用的编程语言的任何类似函数。

相关内容