Разные значения proxy_cache_valid в зависимости от request_uri для nginx

#nginx #caching #reverse-proxy

#nginx #кэширование #обратный прокси

Вопрос:

Я использую nginx в качестве кэша для googleapis.com . В настоящее время все ответы кэшируются на 5 миллионов:

 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 )?

Комментарии:

1. Смогли ли вы решить эту проблему? Я сталкиваюсь с той же проблемой.