nginx背后的多个web应用程序。我在nginx后面运行了不同的web应用程序。
这是我下面的图表,用于我的设置来处理多个应用程序。
如何访问App-1/App-2/App-3应用程序
浏览器发送访问主网站和主网站的请求,为他们提供304重定向的cookies值( Device_type=xx和IP=45)以延迟。
* _Type=App-1或App-2 ->连接的设备。 * IP = 45,系统IP地址的最后一个八进制。
因此,只要看到设备类型& IP最后一个八进制值,就可以重定向到正确的应用程序。
浏览器向nginx发送请求,只需看到设备类型和IP最后一个八位数值,就可以重定向到正确的应用程序。所有进一步的请求都将根据cookie值和nginx的规则进行更正。
如果只有应用程序( App-1/ APP -2/App-3)可以从每个应用程序的一个浏览器访问,这是非常好的。
问题:-没有两个应用程序可以从同一个浏览器访问。也就是说,如果两个应用程序运行在同一个浏览器上,即使不同的选项卡,它们也会共享cookie。
现在,如果他们共享cookie,那么nginx大多数时候都会重新定向到错误的应用程序。
我知道这不是最好的办法,但它是像以前那样做的。
实现:-我希望在nginx上有动态路由,这取决于每个用户浏览器的session.So,每次用户请求任何东西时,我都会将其路由正确的应用程序。
我在nginx中进行了大量的调查,但是nginx中没有任何东西,因为nginx拥有浏览器会话,因此所有后续请求都会转到同一个APP Server。也在查看ceryx-dynamic-nginx。
发布于 2017-08-25 17:18:56
要将基于cookie的请求定向到server服务器,您所需要做的就是按以下方式创建一个映射:
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,那么您需要做的就是为每个上游创建服务器,并使其基于主机名值进行定向。
https://stackoverflow.com/questions/45886007
复制相似问题