2017-02-22 140 views
0

我们有一种情况,我们需要从server_A(NGINX)提供登录页面,从这里获得用户身份验证,并且一旦通过身份验证请求路由请求ta驻留在不同服务器(即Server_B)中的页面。随后的所有请求都将到达Server_A,它将首先检查用户和会话的有效性,然后路由到Server_B。这样会话和安全性由服务器A维护,其余工作由服务器B完成。NGINX可以同时作为Web服务器和代理服务器吗?

我的问题在于,我们可以通过NGINX服务器实现吗?

回答

0

我在这里的问题是,我们可以从NGINX服务器实现这个吗?

是的,当然。

你是怎么做的?

以为例修改Tomcat的背后NGINX应用程序配置我都得心应手:

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行!

相关问题