ajp_cache_key
指令 `ajp_cache_key` 定义了 NGINX 中来自 AJP 后端响应的缓存键。
Support AJP protocol proxy with NGINX
·
httpserverlocation
语法ajp_cache_key line;
默认值none
上下文http, server, location
参数flag
说明
指令 ajp_cache_key 允许 NGINX 用户指定构成 AJP 协议响应缓存键的组成部分。该指令让您可以控制在缓存响应时应考虑请求的哪些部分,这对不同请求可能产生相同响应的场景至关重要。对于依赖于用户特定数据(例如 cookies)的应用,这种灵活性尤其重要。默认情况下,缓存键不包含主机名,这在使用子域的环境中可能导致缓存冲突。
要配置合适的缓存键,该指令接受一个基于变量的字符串,允许包含请求头、请求 URI,甚至 cookie。例如,配置如 ajp_cache_key "$host$request_uri$cookie_user"; 包括了主机名、请求 URI 和用户特定的 cookie。这可以确保不同用户的响应被正确缓存,而不会与可能仅在 URL 结构上部分相同但上下文不同的其他响应混淆。
配置示例
location / {
ajp_pass tomcats;
ajp_cache_key "$scheme$host$request_uri";
}⚠
在子域配置中省略 $host 会导致缓存冲突。
⚠
使用过于宽泛的缓存键可能会因缓存条目增加而导致内存使用过高。