我不认为有一种方法可以使缓存的项目显式无效,但是这里有一个示例,说明如何进行其余操作。更新:正如Piotr在另一个答案中提到的那样,您可以使用一个缓存清除模块。您还可以使用nginx的proxy_cache_bypass强制刷新缓存的项目- 有关更多信息,请参见Cherian的答案。
在此配置中,未缓存的项目将从example.net检索并存储。缓存的版本将提供给将来的客户端,直到它们不再有效(60分钟)为止。
您的Cache-Control和Expires HTTP标头将被接受,因此,如果您要显式设置有效期,则可以通过在要代理的内容中设置正确的标头来实现。
您可以调整很多参数-有关所有这些的更多信息,请参见Nginx代理模块文档,包括有关不同设置/参数含义的详细信息:http :
//nginx.org/r/proxy_cache_path
http {
proxy_cache_path /var/www/cache levels=1:2 keys_zone=my-cache:8m max_size=1000m inactive=600m;
proxy_temp_path /var/www/cache/tmp;
server {
location / {
proxy_pass http://example.net;
proxy_cache my-cache;
proxy_cache_valid 200 302 60m;
proxy_cache_valid 404 1m;
}
}
}