如何设置Nginx proxy_cache_key包含自定义变量,实现针对不同用户行为的细粒度缓存分发策略?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1185个文字,预计阅读时间需要5分钟。
直接说结论:
为什么不能直接在 proxy_cache_key 里写 $arg_device_type?
Nginx 的 proxy_cache_key 在缓存查找阶段执行,而部分变量(如 $arg_*、$cookie_*、$http_*)的解析依赖于请求体或 header 解析完成。若缓存逻辑早于这些变量就绪(例如发生在 proxy_pass 前的 rewrite 阶段),Nginx 可能取到空值或默认值,导致缓存 key 错乱甚至全量命中同一份缓存。
本文共计1185个文字,预计阅读时间需要5分钟。
直接说结论:
为什么不能直接在 proxy_cache_key 里写 $arg_device_type?
Nginx 的 proxy_cache_key 在缓存查找阶段执行,而部分变量(如 $arg_*、$cookie_*、$http_*)的解析依赖于请求体或 header 解析完成。若缓存逻辑早于这些变量就绪(例如发生在 proxy_pass 前的 rewrite 阶段),Nginx 可能取到空值或默认值,导致缓存 key 错乱甚至全量命中同一份缓存。

