Nginx使用通配符HTTP请求清除缓存的实际方法是什么



首先我搜索并尝试了一些文章:

1(https://www.ryadel.com/en/nginx-purge-proxy-cache-delete-invalidate-linux-centos-7/

第一种方式:

a( 通过curl请求更新缓存(BYPASS(,这对我来说很有效,但没有通过通配符更新缓存的例子

b( 使用PURGE方法通过curl请求删除缓存,使用过时的模块ngx_cache_PURGE-2.3,但没有在通配符上更新缓存的示例,并且至少如文章所示配置对我不起作用(nginx 1.14(:

curl-X PURGE-I mysite.com/text.txt

curl:(52(来自服务器的空回复

2(https://scene-si.org/2016/11/02/purging-cached-items-from-nginx-with-lua/;https://gist.github.com/titpetric/2f142e89eaa0f36ba4e4383b16d61474/revisions

第二种方式:

如果我理解正确的话,lua需要nginx1.10版本,而我的版本是v1.14,并且v1.14没有lua模块。

nginx:[emerg]module"/usr/lib64/nginx/modules/ngx_http_lua_module.so"版本1010001,而不是/etc/nginx/nginx.conf:1 中的1014000

所以我的问题是:是否有可用的方法来清除Nginx v1.14带有通配符的缓存HTTP请求,您可以提供建议?

向致以最良好的问候

我知道这个问题有点过时了。但我目前正在使用这个lua模块,它允许通配符:https://github.com/diego-treitos/nginx_cache_multipurge

它有安装和使用它的所有说明。

您应该按如下方式添加PURGE,这样问题就会得到解决。

if ($request_method !~ ^(GET|HEAD|POST|PURGE)$ ) {
return 444;
}

相关内容

最新更新