要清除的 nginx 特定 url

Lon*_*ith 5 nginx cache

我正在寻找一种通过在 url 上添加特定注释来清除 nginx 缓存的方法。

假设我用 nginx 缓存了这个 url(项目):

http://mywebsite/render/render5.php?frame=1&image=nature-1920.jpg
Run Code Online (Sandbox Code Playgroud)

如果我想清除它,我必须添加:

http://mywebsite/render/render5.php?frame=1&image=nature-1920.jpg&purge=1
Run Code Online (Sandbox Code Playgroud)

如果我们在 URL 末尾添加,是否可以清除该 URL &purge=1

我发现的所有教程都使用curl -X命令来清除特定项目,例如:

curl -X PURGE http://mywebsite/render/render5.php?frame=1&image=nature-1920.jpg
Run Code Online (Sandbox Code Playgroud)

https://scene-si.org/2016/11/02/purging-cached-items-from-nginx-with-lua/

我希望能够清除 nginx 缓存的项目(url),而无需使用curl -X命令。

mah*_*off 2

链接的教程使用 Lua 脚本添加了清除功能,因此可以对其进行修改&purge=1以代替 PURGE http 方法。然而,对于生产系统来说这是不可取的。

HTTP/REST 服务设计的指导原则是 GET 请求(即调用时发生的情况curl <url>)是“安全的”,这意味着它们基本上应该是只读的,没有任何副作用。原因之一是客户端可以提前调用它们,例如,Web 浏览器可以在加载页面后立即调用显示在页面上的 URL,以提高性能。这将清除缓存。