如何根据请求头特征,用map指令灵活调整proxy_cache_valid缓存周期?

2026-04-28 22:491阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1173个文字,预计阅读时间需要5分钟。

如何根据请求头特征,用map指令灵活调整proxy_cache_valid缓存周期?

可以通过 `map` 指令将请求头(如 `User-Agent`、`Cookie`、`Authorization` 等)映射为具有有效期的缓存变量,然后在 `proxy_cache_valid` 中引用这些变量实现动态控制。注意:

用 map 提取请求头特征并映射缓存策略标识

http 块中定义 map,根据请求头内容生成一个代表缓存时长的字符串(如 "60s""1h"),或更推荐生成整数秒(便于后续逻辑扩展):

map $http_user_agent $cache_ttl { ~*curl|httpie 10; ~*Mobile 300; ~*Firefox|Chrome 3600; default 86400; }

说明:

  • $http_user_agent 是内置变量,对应 User-Agent 请求头;其他可用 $http_cookie$http_accept_language
  • ~* 表示忽略大小写匹配
  • proxy_cache_valid 的固定规则对齐

通过 proxy\_cache\_valid 多行匹配实现“条件化”生效

Nginx 的 proxy_cache_valid 不接受变量,但支持按响应状态码多行声明。

阅读全文
标签:Proxy

本文共计1173个文字,预计阅读时间需要5分钟。

如何根据请求头特征,用map指令灵活调整proxy_cache_valid缓存周期?

可以通过 `map` 指令将请求头(如 `User-Agent`、`Cookie`、`Authorization` 等)映射为具有有效期的缓存变量,然后在 `proxy_cache_valid` 中引用这些变量实现动态控制。注意:

用 map 提取请求头特征并映射缓存策略标识

http 块中定义 map,根据请求头内容生成一个代表缓存时长的字符串(如 "60s""1h"),或更推荐生成整数秒(便于后续逻辑扩展):

map $http_user_agent $cache_ttl { ~*curl|httpie 10; ~*Mobile 300; ~*Firefox|Chrome 3600; default 86400; }

说明:

  • $http_user_agent 是内置变量,对应 User-Agent 请求头;其他可用 $http_cookie$http_accept_language
  • ~* 表示忽略大小写匹配
  • proxy_cache_valid 的固定规则对齐

通过 proxy\_cache\_valid 多行匹配实现“条件化”生效

Nginx 的 proxy_cache_valid 不接受变量,但支持按响应状态码多行声明。

阅读全文
标签:Proxy