缓存清除
There are several ways to purge cache by making HTTP PURGE requests to the manager uri defined by uri.
You can define customized http method using purge-method MYPURGE other than the default PURGE in case you need to forward PURGE to backend servers.
删除一个特定URL
curl -XPURGE https://127.0.0.1/imgs/test.jpg
生成key GET.scheme.host.uri
, 并删除那个key。
默认key 包含Host
, 如果缓存时用了http://example.com/test
而在localhost删除是需要Host
header:
curl -XPURGE -H "Host: example.com" http://127.0.0.1/test
通过name删除
可以通过带上name header来 PURGE
headers
header | value | description |
---|---|---|
name | nuster rule NAME | caches belong to rule ${NAME} will be purged |
proxy NAME | caches belong to proxy ${NAME} | |
* | all caches |
Examples
# 删除所有缓存
curl -X PURGE -H "name: *" http://127.0.0.1/nuster/cache
# 删除backend applb的所有缓存
curl -X PURGE -H "name: app1b" http://127.0.0.1/nuster/cache
# 删除所有rule r1生成的缓存
curl -X PURGE -H "name: r1" http://127.0.0.1/nuster/cache
通过host删除
通过带上x-hostheader来删除所有属于这个host的缓存。
headers
header | value | description |
---|---|---|
x-host | HOST | the ${HOST} |
Examples
curl -X PURGE -H "x-host: 127.0.0.1:8080" http://127.0.0.1/nuster/cache
通过path删除
默认情况下,query部分也包含在key中,所以相同的path不同的query会产生不同的缓存。
比如nuster rule imgs if { path_beg /imgs/ }, 然后请求
curl https://127.0.0.1/imgs/test.jpg?w=120&h=120
curl https://127.0.0.1/imgs/test.jpg?w=180&h=180
会生成两个缓存,因为query不一样。
如果要删除这些缓存,可以
如果知道所有的query,那么可以一个一个删除
curl -XPURGE https://127.0.0.1/imgs/test.jpg?w=120&h=120
curl -XPURGE https://127.0.0.1/imgs/test.jpg?w=180&h=180
大多数情况下不知道所有的query
如果query部分不重要,则可以从key里面删除query
定义nuster rule imgs key method.scheme.host.path if { path_beg /imgs }, 这样的话只会生成一个缓存,那么就可以不用query删除缓存
curl -XPURGE https://127.0.0.1/imgs/test.jpg
大多数情况需要query
通过rule name删除
curl -X PURGE -H "name: imgs" http://127.0.0.1/nuster/cache
但是如果rule被定义成了 nuster rule static if { path_beg /imgs/ /css/ },则无法只删除imgs
因此,可以通过path删除
headers
header | value | description |
---|---|---|
path | PATH | caches with ${PATH} will be purged |
x-host | HOST | and host is ${HOST} |
Examples
# 删除所有path是/imgs/test.jpg的缓存
curl -X PURGE -H "path: /imgs/test.jpg" http://127.0.0.1/nuster/cache
# 删除所有path是/imgs/test.jpg 并且host是127.0.0.1:8080的缓存
curl -X PURGE -H "path: /imgs/test.jpg" -H "x-host: 127.0.0.1:8080" http://127.0.0.1/nuster/cache
通过正则删除
也可以通过正则删除,所有匹配正则的缓存将被删除。
headers
header | value | description |
---|---|---|
regex | REGEX | caches which path match with ${REGEX} will be purged |
x-host | HOST | and host is ${HOST} |
Examples
# 删除所有 /imgs 开头 .jpg结尾的缓存
curl -X PURGE -H "regex: ^/imgs/.*\.jpg$" http://127.0.0.1/nuster/cache
#delete all caches which path starts with /imgs and ends with .jpg and belongs to 127.0.0.1:8080
curl -X PURGE -H "regex: ^/imgs/.*\.jpg$" -H "127.0.0.1:8080" http://127.0.0.1/nuster/cache
PURGE 注意事项
开启访问控制
如果有多个header,按照name, path & host, path, regex & host, regex, host的顺序处理
curl -XPURGE -H “name: rule1” -H “path: /imgs/a.jpg”: purge by name
如果有重复的header,处理第一个
curl -XPURGE -H “name: rule1” -H “name: rule2”: purge by rule1
regex 不是 glob
比如 /imgs下的.jpg文件是^/imgs/.*\.jpg$ 而不是 /imgs/*.jpg
转:https://gitee.com/mirrors/Nuster-Proxy
原创文章,作者:赛福,如若转载,请注明出处:https://www.safecdn.cn/670.html
本站不销售、不代购、不提供任何支持,仅分享网络信息,请自行辨别,请遵纪守法、文明上网。