【问题标题】:nginx proxy_cache_key using regex使用正则表达式的 nginx proxy_cache_key
【发布时间】:2018-09-12 03:12:10
【问题描述】:

我正在尝试在 nginx 1.12 中使用 proxy_cache_key 匹配 $uri 的特定部分,以处理这些请求,其中不同的文件名(不带参数)实际上具有相同的文件内容。 :(

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。

谁能帮帮我?

【问题讨论】:

  • 你忘了添加内容阶段指令,例如proxy_pass或return
  • 是的,它已经存在于我的配置中,但我昨天没有在这里添加,现在将添加它>
  • 我是否正确理解中间文件名组件(如“w1751476191”)可以变化但文件相同?也就是说,正确的文件只由“1”和“2333”两个分量决定?

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


【解决方案1】:

试试这样的:

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;
}

【讨论】:

    猜你喜欢
    • 2021-03-15
    • 1970-01-01
    • 2016-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-11
    • 2017-04-11
    相关资源
    最近更新 更多