Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache 如何添加不同的自定义标题_Apache_Nginx_Varnish_Vary - Fatal编程技术网

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

Apache 如何添加不同的自定义标题,apache,nginx,varnish,vary,Apache,Nginx,Varnish,Vary,我的应用程序正在根据用户国家/地区代码更改内容 服务器请求流 https请求->nginx处理ssl终止->清漆->如果未缓存,则从apache获取内容 http rquest->varnish->重定向到https链接->nginx处理ssl终止->varnish->如果未缓存,则从apache获取内容 使用varnish GeoIP模块,我找到了用户国家代码,并将值设置为headerreq.http.X-country-code我在应用程序中读取了这个header值 问题:它总是缓存第一次命

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

服务器请求流

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

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

使用varnish GeoIP模块,我找到了用户国家代码,并将值设置为header
req.http.X-country-code
我在应用程序中读取了这个header值

问题:它总是缓存第一次命中并服务于所有位置

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


我不确定在哪里添加vary头文件nginx或apache。

添加
vary
头文件应该可以解决这个问题,如果您可以访问支持的代码,则最好不要更改内部代码

但在哪里添加它呢?最好的方法是在应用程序中执行。应用程序决定服务什么,它应该有权决定缓存什么以及何时缓存,毕竟将来你可以用其他东西替换nginx或Varnish,在你和客户端之间可能还有其他缓存。

我在应用程序(php)中添加了它的工作原理:-)
header('Vary:X-Country-code')$countryCode=$\u服务器['HTTP\u X\u COUNTRY\u CODE']