假设我有两个自定义标头,foo
它们bar
有助于 REST 查询的唯一性,我该如何配置 nginx 以将它们包含在其缓存键中?
例如,这些查询命中了相同的 URL,但根据其标头,应该以不同的方式缓存:
wget --header=foo:1 --header=bar:A http://my.web.site/api/query
wget --header=foo:1 --header=bar:B http://my.web.site/api/query
wget --header=foo:2 --header=bar:A http://my.web.site/api/query
wget --header=foo:2 --header=bar:B http://my.web.site/api/query
答案1
nginx 有配置指令proxy_cache_key
,可以用来定义缓存键。
默认情况下,缓存键为$scheme$proxy_host$request_uri
。通过添加$http_foo
键,您将获得不同标头的单独缓存。
也有一个相应的指令fastcgi
。
答案2
我认为应该将$http_foo
和添加$http_bar
到您的proxy_cache_key
应该可以