我有以下类型的端点。
/ V1 /端点/ {ID} /高速缓存
/ V1 /端点/ {ID} / bypasscache
我想绕过第二个缓存,因为它需要是最新的,同时将我的默认缓存保留在不经常更新的第一个URL上。
是否可以进行此设置,但具有变量ID?
if ($request_uri ~* "/v1/endpoint/18/bypasscache" ) {
set $no_cache 1;
}
fastcgi_cache_bypass $no_cache;
fastcgi_no_cache $no_cache;
答案 0 :(得分:1)
尝试(对于1或2个字符宽的数字组合,大写和小写字母的变量ID):
if ($request_uri ~* "/v1/endpoint/[0-9a-zA-Z]{1,2}/bypasscache" ) {
set $no_cache 1;
}
fastcgi_cache_bypass $no_cache;
fastcgi_no_cache $no_cache;
未经测试,因为我目前无法启动备用网络服务; - )
其他提示可在nginx location regex - character class and range of matches
的答案中找到还有不的提示在正则表达式中包含花括号时忘记引用该字符串,因为这些可能会干扰块语法花括号 - 这里是if的块。