nginx proxy_cache_key 具有单个 $scheme

nginx proxy_cache_key 具有单个 $scheme

我已经用单个 $scheme 测试了 proxy_cache_key

 proxy_cache_key $scheme;
 proxy_pass http://127.0.0.1:8081/;

然后我请求一个来缓存。

curl http://127.0.0.1:8080/a.html

然后我再次请求确认缓存

curl http://127.0.0.1:8080/a.html

没问题

然后我请求其他网址

curl http://127.0.0.1:8080/b.html

并希望它命中缓存,因为键是 $scheme

但它给了我 b.html 的内容

为什么 proxy_cache_key $scheme;不工作?

答案1

代理服务器响应的标头可以改变“最终”缓存键。

https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_ignore_headers

如果没有禁用,处理这些标头字段将产生以下效果:

  • “X-Accel-Expires”、“Expires”、“Cache-Control”、“Set-Cookie”和“Vary”设置响应缓存的参数;

您可以检查这些标题是否包含在响应中和/或尝试忽略它们。

相关内容