NGINX 缓存密钥控制:包括 HTTP 标头

NGINX 缓存密钥控制:包括 HTTP 标头

我正在尝试将 NGINX 设置为 Web 服务器前面的 HTTP 缓存,并找到了这个很棒的指南:https://www.nginx.com/blog/nginx-caching-guide/

似乎可以从默认,但透过变量列表,我看不出有任何方法可以在键中包含特定的 HTTP 标头。我知道 NGINX 支持 Vary 标头,这正是我想要的行为,但 Web 服务器目前未设置任何 Cache-Control 标头。

答案1

你正在寻找的是$http_name, 在哪里姓名应替换为请求标头的小写名称,并将破折号替换为下划线。例如,标Accept-Language头对应于$http_accept_language

您可以像这样附加默认缓存键:

proxy_cache_key “$scheme$proxy_host$request_uri$http_accept_language”;

请注意 - 默认情况下不支持带下划线的标头。要访问这些标头,请运行underscores_in_headers on;

相关内容