不同的proxy_cache_valid取决于nginx的request_uri

问题描述

我使用 Nginx 作为 googleapis.com 的缓存。目前所有响应都缓存了 5m:

proxy_cache_path /var/cache/Nginx/xxx_cache keys_zone=xxx_cache:10m;

server {
  location ~ /blog/ {
    proxy_pass https://www.googleapis.com/blogger/v3/blogs/;
    proxy_cache xxx_cache;
    proxy_cache_lock on;
    proxy_cache_valid 5m;
}

我想根据 request_uri 更改此间隔。通过 $proxy_cache_valid 指令定义 map 变量并将其用于 proxy_cache_valid 失败并显示 invalid time value "$proxy_cache_valid" in ...

map $request_uri $proxy_cache_valid { 
  default 5m;
  ~^/blog/[0-9]+/posts/[0-9]+ 1h;
}

proxy_cache_path /var/cache/Nginx/xxx_cache keys_zone=xxx_cache:10m;

server {
  location ~ /blog/ {
    proxy_pass https://www.googleapis.com/blogger/v3/blogs/;
    proxy_cache xxx_cache;
    proxy_cache_lock on;
    proxy_cache_valid $proxy_cache_valid;
}

如何在 Nginx (Nginx version: Nginx/1.16.1) 中实现这一点?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)