使用正则表达式的nginx proxy_cache_key

时间:2018-04-02 21:33:30

标签: regex http nginx reverse-proxy nginx-location


我试图匹配$ uri的特定部分使用nginx 1.12中的proxy_cache_key来处理这些请求,这些请求具有相同的文件内容,文件名不同且没有参数:(

2018-04-02T21:25:37+00:00  MISS /bein1/1/media_w1751476191_2333.ts
2018-04-02T21:25:37+00:00  MISS /bein1/1/media_w2137194067_2333.ts
2018-04-02T21:25:38+00:00  MISS /bein1/1/media_w1023873154_2333.ts

我尝试了以下内容:

location ~ ^/bein1/(.*)/media_(.*)_(.*).(ts)$ {
    proxy_cache_valid 200 302 60s;
    proxy_cache_key "/bein1/$1/media_$3.ts";
    proxy_pass http://origin;
    add_header "X-Hls-Cache-Status" "Cached TS";
}

但我仍然无法匹配指定的URI 有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

尝试如下所示:

location ~ ^/bein1/([-_a-zA-Z0-9/]+)/media_([-_a-zA-Z0-9/]+)_([0-9]+).ts$ {
   proxy_cache_key "/bein1/$1/media_$3.ts";
   proxy_cache_valid 200 302 60s;
   proxy_pass http://origin;
}