ProxyPassReverseCookieDomain动态变量
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ProxyPassReverseCookieDomain动态变量相关的知识,希望对你有一定的参考价值。
我需要从域B使用位于域A中的一些其他API。登录服务负责设置cookie。使用代理我可以从B访问域A没有问题。
遗憾的是,检查响应标头时,cookie域设置为A,服务位于此处,因此浏览器不会将cookie存储在调用服务的域B中。
在生产环境中,这不是问题,因为前端和后端属于同一个域。但是,在本地工作时,前端位于localhost上,后端位于虚拟机内。
我发现将cookie设置到另一个域的唯一方法是apache指令ProxyPassReverseCookieDomain
。
它运作良好。我可以设置ProxyPassReverseCookieDomain virtualMachineHost myLocalDomain
。
问题是虚拟机内的所有其他服务都无法再获取cookie。
我想为指令设置动态变量,将cookie域设置为请求主机。我按照apache文档中的建议尝试使用ProxyPassReverseCookieDomain virtualMachineHost %{HTTP_HOST}
,但看起来变量没有扩展。它被视为字符串,因此cookie域设置为“%{HTTP_HOST}”。
有没有办法使用apache环境变量来实现这一目标?
谢谢。
我知道这是非常老的,我对我正在运行的反向代理应用程序有同样的要求。不幸的是,我相信apache是不可能的。另一方面,一个非常简单的解决方法可能会做我们想要的,见下文;
在你的apache反向代理之上使用nginx作为反向代理,非常简单的配置,这就是你想要的“proxy_cookie_domain”
server {
listen 80; //or your port
server_name *.example.com;
access_log /var/log/nginx/example.log;
location / {
proxy_pass http://apache_proxy_servers;
proxy_cookie_domain ~.*$ $host; // this is your line
}
}
以上是关于ProxyPassReverseCookieDomain动态变量的主要内容,如果未能解决你的问题,请参考以下文章