![如果存在特定标头,则更改 nginx proxy_cache_key](https://linux22.com/image/642211/%E5%A6%82%E6%9E%9C%E5%AD%98%E5%9C%A8%E7%89%B9%E5%AE%9A%E6%A0%87%E5%A4%B4%EF%BC%8C%E5%88%99%E6%9B%B4%E6%94%B9%20nginx%20proxy_cache_key.png)
我正在尝试使用不同的proxy_key缓存ajax请求。
我的常规代理密钥:
proxy_cache_key "$host$request_uri";
我想对 ajax 请求(带有 X-Requested-With 标头)使用不同的 proxy_cache_key。
像这样
if ($http_x_requested_with) {
proxy_cache_key "$host$request_uri$cookie_SID";
}
我怎样才能做到这一点?
答案1
也许是这样的
首先,保存"$host$request_uri"
到变量中放。然后在里面if
更改变量值。最后proxy_cache_key
用该自定义变量设置你的。
边注if
:如果您不想得到意外结果,切勿使用内部位置。请参阅假如邪恶。
这里是例子:
http {
...
server {
...
set $cache_key "$host$request_uri";
if ($http_x_requested_with) {
set $cache_key "$host$request_uri$cookie_SID";
}
proxy_cache_key $cache_key;
location / {
....
}
location /others {
.....
}
}
}