Talvez algo parecido com isto
Primeiro, salve "$host$request_uri" em uma variável com definido . Em seguida, dentro de if , altere o valor da variável. Por fim, defina seu proxy_cache_key com essa variável personalizada.
Sidenote : nunca use if dentro da localização se não quiser obter resultados inesperados. Veja IfIsEvil .
Aqui o exemplo:
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 {
.....
}
}
}