如何添加各种自定义标头

时间:2018-06-19 09:34:36

标签: apache nginx varnish vary

我的应用程序正在根据用户国家/地区代码更改内容。

服务器请求流程

  

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

     

http rquest - >清漆 - >重定向到https链接 - > nginx处理ssl终止 - >清漆 - >如果没有缓存从apache获取内容

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

问题:它始终会缓存第一个匹配并投放到所有位置

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

我不知道在哪里添加vary header nginx或apache。

1 个答案:

答案 0 :(得分:1)

添加Vary标头应该可以解决此问题,如果您有权访问支持的代码,则最好在Varnish中更改hash

不过在哪里添加呢?最好的地方是在应用程序中执行此操作。该应用程序可以决定要提供的服务,它应该有权决定要缓存的内容以及时间,毕竟将来您可以用其他东西替换nginx或Varnish,并且您和客户端之间可能还会有其他缓存。