如何添加不同的自定义标题

如何添加不同的自定义标题

我的应用程序正在根据用户国家代码更改内容。请查看服务器请求流程图。

https 请求 -> nginx 处理 ssl 终止 -> varnish -> 如果没有缓存,则从 apache 获取内容

http 请求 -> varnish -> 重定向到 https 链接 -> nginx 处理 ssl 终止 -> varnish -> 如果没有缓存,则从 apache 获取内容

使用 varnish GeoIP 模块我找到了用户国家代码并将值设置为标头,req.http.X-Country-Code我在应用程序中读取了此标头值。

问题:它始终缓存第一个命中并服务于所有位置

我希望添加不同的标头可以解决我的问题,您能指导我吗?

我不确定在哪里添加不同的标头 nginx 或 apache。

答案1

解决方案 1 ) https://varnish-cache.org/docs/5.1/users-guide/vcl-hashing.html

解决方案 2 )添加 header variations

变化标头必须由源生成,因为只有源知道哪些页面将会改变。

https://varnish-cache.org/docs/5.1/users-guide/increasing-your-hitrate.html?highlight=vary#http-vary

如果你不能添加标题在原点,你可以修改后端响应添加 Vary 标头

一些文档:

https://varnish-cache.org/docs/5.1/reference/states.html#reference-states https://varnish-cache.org/docs/5.1/users-guide/vcl-built-in-subs.html

相关内容