nginx 可以在用户定义的标头上缓存吗?

nginx 可以在用户定义的标头上缓存吗?

假设我有两个自定义标头,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应该可以

相关内容