我正在寻找一种通过在 url 上添加特定注释来清除 nginx 缓存的方法。
假设我使用 nginx 缓存了此 url(项目):
http://mywebsite/render/render5.php?frame=1&image=nature-1920.jpg
如果我想清除它,我必须添加:
http://mywebsite/render/render5.php?frame=1&image=nature-1920.jpg&purge=1
如果我们在该 URL 末尾添加 ,是否可以清除该 URL &purge=1
?
我发现的所有教程都使用命令curl -X
来清除特定项目,例如:
curl -X PURGE http://mywebsite/render/render5.php?frame=1&image=nature-1920.jpg
https://scene-si.org/2016/11/02/purging-cached-items-from-nginx-with-lua/
并且我希望能够清除 nginx 缓存项(url),而无需使用curl -X
命令。
答案1
链接的教程使用 Lua 脚本添加了清除功能,因此可以对其进行修改以使用&purge=1
代替 PURGE http 方法。然而,对于生产系统来说这是不可取的。
指导原则HTTP/REST 服务设计GET 请求(即调用 时发生的请求curl <url>
)是“安全的”,这意味着它们基本上是只读的,没有任何副作用。其中一个原因是客户端可以提前调用它们,例如,Web 浏览器可以自由地在页面加载后立即调用页面上显示的 URL,以提高性能。这会清除缓存。