利用Nginx反向代理结合S2S实现国外用户访问国内业务系统加速访问
作者:互联网
首先业务系统是B/S架构的,在这里我会用到国内版和国际版Azure来模拟这个场景:
注意:构建S2S或专线请按照国家法律法规要求进行备案登记并走合法途径!!!
国内版我会部署1台虚拟机Windows Server 2012 R2(chinanorthgw)做IIS+网关
国际版我会部署虚拟网关和本地网关与国内版的chinanorthgw构建成S2S(模拟专线)
国际版我会部署1台CentOS的虚拟机安装Nginx实现反向代理
每台虚拟机都只有一张网卡并且是内网IP地址
在国内Azure上我新建了一个虚拟网络及子网
north-vnet 172.80.0.0/16 172.80.1.0/24
在这个子网上部署一个网关chinanorthgw虚拟机,提供IIS+网关(S2S服务)
部署好以后可以看懂该虚拟机的公网IP和内网IP
在国际版Azure上我新建了一个虚拟网络及子网
Japan-vnet 192.80.0.0/16 192.80.1.0/24
再在这个子网里部署一台CentOS虚拟机来部署Nginx反向代理
部署好以后可以看到该虚拟机的公网IP地址和内网IP地址
那么接下来首先我需要让国内版的虚拟网络子网和国际版虚拟网络子网打通
在国际版上japan-vent-servers子网上新建网关子网
接下来创建一个虚拟网络网关,这个创建过程大约持续半小时
接下来创建本地网络网关
等待虚拟网络网关创建完成后,接下来继续在本地网络网关上新建连接
新建一个S2S的链接,选择创建好的虚拟网关,设置一个共享密钥即可。
到这里国际版的配置就到一个段落了,接下来回到国内版对chinanorthgw进行下网络配置
开放如下端口
登录到创建好的chinanorthgw虚拟机配置,安装远程访问角色
选择DA和路由后一直下一步直至完成
安装完成,点击关闭
打开路由和远程访问
右键配置并启用路由和远程访问
选择两个专用网络之间的安全连接
下一步
下一步
点击完成
创建一个接口名称
下一步
选择IKEv2,下一步
填写国际版上JapanVirtualGW虚拟网络网关的公网IP地址104.214.139.64 (JapanVirtualGW-IP)
下一步
添加国际版japannginx虚拟机所在的虚拟网络
下一步
直接下一步
对新建好的Azure S2S属性编辑
设置安全为共享密钥,填写国际版上本地虚拟网络网关S2S里的共享密钥
添加一条静态路由,这条路由的目标是Azure上我的虚拟网络Japan-vnet地址192.80.0.0/255.255.0.0/256
已经自动连接好了
同时也可以在国际版本地网络网关——连接——S2S状态里看到已连接
此刻在国内版chinanorthgw虚拟机里ping国际版的japannginx虚拟机内部IP地址192.80.1.4
反之从国际版的japannginx虚拟机ping国内版的chinanorthgw虚拟机内网IP也可以通了
接下来在国内版chinanorthgw虚拟机上安装IIS,并配置一个简单的网页
记得在系统防火墙也开放这个5555端口
接下来就登录到国际版Japannginx虚拟机里配置nginx了
老规矩,还是先设定Root密码并切换到root登陆
Sudo passwd root
[输入zjunsen密码]
[设置root新密码]
[再次输入设置的root新密码]
su -
[输入root密码]
因为我这里是测试环境,这里我就把防火墙和SELinux关掉
重启该虚拟机后登录切换到root账户,然后开始添加Nginx存储库
yum install epel-release
再安装nginx
安装完成以后,启动nginx
systemctl start nginx
查看nginx版本
需要在Azure门户上对该虚拟机开放80端口
然后可以测试打开这个公网IP就看到nginx的网站了
接下来我们要开始做反向代理了,让nginx的80端口去中继到国内版chinanorthgw虚拟机的内网IP地址的IIS站点5555端口
配置nginx.conf文件vim nginx.conf
修改如下,完成后保存退出
让Nginx重新加载nginx -s reload
或重新启动nginx服务systemctl restart nginx
此刻从japannginx虚拟机的公网IP访问看看,可以看到能打开国内chinanorthgw虚拟机上配置的IIS虚拟站点端口为5555的网页了
这样就实现了通过访问Nginx提供的web服务,有nginx代理您的请求从S2S访问到国内chinanorthgw虚拟机上的web服务。当然中间的S2S替换成专线就解决了国外用户访问部署在国内的网站速度问题了。
标签:S2S,网关,chinanorthgw,Nginx,虚拟机,访问,nginx,国际版 来源: https://blog.51cto.com/rdsrv/2429919