每浏览器用户会话的nginx动态路由
nginx背后的多个web应用程序。 我在nginx后面运行着不同的web应用程序每浏览器用户会话的nginx动态路由,nginx,cookies,nginx-reverse-proxy,Nginx,Cookies,Nginx Reverse Proxy,nginx背后的多个web应用程序。 我在nginx后面运行着不同的web应用程序 主网站应用程序-->此网站提供指向不同应用程序的重定向链接 不同应用-->App-1/App-2/App-3 Nginx-->路由到正确的应用程序 这是我在下面的图表,我用它来设置处理多个应用程序 App-1/App-2/App-3应用程序的访问方式 A.浏览器发送访问主网站的请求,主网站向其提供cookie值(设备类型=xx&IP=45)以延迟 *设备类型=App-1或App-2-->要连接的设备。 *IP=
- 如果你认为饼干不是个好主意&那么我愿意改变它
map $cookie_IP $app_upstream {
default main_app;
45 app1;
46 app2;
66 app3;
}
您需要为每个应用程序创建应用程序流
upstream main_app {
server 192.168.12.10;
}
upstream app1 {
server 10.122.123.45;
}
upstream app2 {
server 10.122.123.46;
}
upstream app3 {
server 10.122.123.66;
}
在你的位置下,你可以
location / {
proxy_pass http://$app_upstream$uri;
}
如果您已经为每个上游定制了url,那么您需要做的是为每个上游创建服务器,并根据主机名值将其定向。为了将基于cookie的请求定向到特定服务器,您需要做的就是制作一个映射,如下所示:
map $cookie_IP $app_upstream {
default main_app;
45 app1;
46 app2;
66 app3;
}
您需要为每个应用程序创建应用程序流
upstream main_app {
server 192.168.12.10;
}
upstream app1 {
server 10.122.123.45;
}
upstream app2 {
server 10.122.123.46;
}
upstream app3 {
server 10.122.123.66;
}
在你的位置下,你可以
location / {
proxy_pass http://$app_upstream$uri;
}
如果您为每个上游都定制了url,那么,您需要做的是为每个上游创建服务器,并根据主机名值将其定向。您正在使用的URL地址是什么?如果主网站名称是www.help.com&但www.help.com将重定向到www.help.com/app1或www.help.com/app2或www.help.com/app3。。。,这是从www.help.comCookies重新定向的。这不需要Cookies,既然你正在解决问题,为什么不现在就处理掉它?好的,告诉我我是如何解决这个问题的。i、 e.如果您在同一浏览器(不同选项卡)上运行两个应用程序,即APP-1(45)和APP-2(66)。他们将共享Cookie IP信息,因为Cookie是每个主机的Cookie。因此,每次浏览器向我发送IP值时,它都会在选项卡之间互换使用,从而导致浏览器出现错误行为。因此,您事先没有IP和应用程序映射?您使用的URL地址是什么?如果主网站名称是www.help.com,但www.help.com将重定向到www.help.com/app1或www.help.com/app2或www.help.com/app3…,这是从www.help.comCookie被重定向的。这不需要Cookie,既然你正在解决这个问题,为什么你现在不处理它呢?好的,告诉我我如何解决这个问题。i、 e.如果您在同一浏览器(不同选项卡)上运行两个应用程序,即APP-1(45)和APP-2(66)。他们将共享Cookie IP信息,因为Cookie是每个主机的Cookie。所以每次浏览器向我发送IP值时,它都会在选项卡之间互换使用,导致浏览器出现错误行为。所以你事先没有IP和应用映射?请你仔细阅读我的问题。您提到的我已经在做了,即基于cookie将请求定向到特定服务器。但现在的问题是,若您在同一浏览器(不同的选项卡)上运行两个应用程序,即APP-1(45)和APP-2(66)。他们将共享Cookie IP信息,因为Cookie是每个主机的Cookie。因此,每次浏览器发送给我IP值时,它都会在选项卡之间互换使用,导致浏览器行为不当。对不起,我可能不太理解这个问题,那么,你最好不要依赖cookie,如果我是你,我会使用不同的主机名或一个主机名,并将用户应用程序附加到url参数中。对不起,我不明白您能否详细解释一下如果我正确理解您的问题,我相信您希望在相同的用户代理和cookie下同时在相同的DNS名称下为不同的应用程序提供服务器,对吗,如果是这样的话,如果我是你的话,我会让主应用程序通过附加额外的url参数(如/app1/随便什么)将客户端重定向到每个应用程序,如果这个请求从客户端获得服务器,我会删除位置范围上的这个透视参数。如果你愿意,我可以修改答案以反映我的想法。请你仔细阅读我的问题。您提到的我已经在做了,即基于cookie将请求定向到特定服务器。但现在的问题是,若您在同一浏览器(不同的选项卡)上运行两个应用程序,即APP-1(45)和APP-2(66)。他们将共享Cookie IP信息,因为Cookie是每个主机的Cookie。所以每次浏览器向我发送IP值时,它都会在选项卡和原因之间互换使用