我们需要从server_A(NGINX)提供登录页面,从此处获取用户身份验证,并且一旦经过身份验证,就会将请求路由到位于不同服务器(即Server_B)中的页面。所有后续请求都将到达Server_A,它将首先检查用户和会话的有效性,然后路由到Server_B。这样,会话和安全性由服务器A维护,其余工作由服务器B完成。
我的问题是,我们可以从NGINX服务器实现这一点吗?
答案 0 :(得分:2)
我的问题是,我们可以从NGINX服务器实现这一点吗?
是的,当然。
你是怎么做到的?
以NGINX应用程序配置后面的修改后的Tomcat为例,我很方便:
server {
listen 80;
server_name www.example.com;
location /{
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://servera.example.com:8080/app;
client_max_body_size 10M;
}
location /login{
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://serverb.example.com:8080/login;
client_max_body_size 10M;
}
}
这将代理对TomCat服务器的请求,并像任何HTTP服务器一样提供服务。
对于您可能想要代理的任何应用程序,也可以这样说,只需相应地修改上述配置的proxy_pass
行!