一、需求场景:

有数据中心A和B。只有数据中心B内的服务器可以访问www.b.com。如今,数据中心A中有一台服务器A2也需要访问www.b.com。

数据中心A中有一台有公网IP的Nginx服务器A1。数据中心B中有一台存在内网的Nginx服务器B1,通过路由器上网。

二、想法:

可以使用×××或者代理,不过对于此需求,使用Nginx的反向代理功能来实现显得更加容易。

三、实践:

1、在A2的hosts文件中添加内容为“需要访问的域名到A1的IP”的解析。

172.22.0.4 www.b.com

2、在数据中心B的路由器上将B1的8001端口通过路由器映射出来。

3、在A1的hosts文件中添加解析。

10.0.2.2 tz.b.com

4、在A1配置反向代理。跳转地址为数据中心B的Nginx的地址。

server {
    listen 80;
    server_name www.b.com;
    location / {
        proxy_pass http://tz.b.com:8001;
    }
}

5、在B1配置反向代理。跳转地址为需要访问的域名。

server {
    listen 8001;
    server_name tz.b.com;
    location / {
        proxy_pass http://www.b.com;
    }
}