系统相关
首页 > 系统相关> > 利用Nginx反向代理结合S2S实现国外用户访问国内业务系统加速访问

利用Nginx反向代理结合S2S实现国外用户访问国内业务系统加速访问

作者:互联网

首先业务系统是B/S架构的,在这里我会用到国内版和国际版Azure来模拟这个场景:

注意:构建S2S或专线请按照国家法律法规要求进行备案登记并走合法途径!!!

在国内Azure上我新建了一个虚拟网络及子网

north-vnet     172.80.0.0/16      172.80.1.0/24

clip_image001

在这个子网上部署一个网关chinanorthgw虚拟机,提供IIS+网关(S2S服务)

clip_image002

部署好以后可以看懂该虚拟机的公网IP和内网IP

clip_image003

在国际版Azure上我新建了一个虚拟网络及子网

Japan-vnet      192.80.0.0/16       192.80.1.0/24

clip_image004

再在这个子网里部署一台CentOS虚拟机来部署Nginx反向代理

clip_image005

部署好以后可以看到该虚拟机的公网IP地址和内网IP地址

clip_image006

那么接下来首先我需要让国内版的虚拟网络子网和国际版虚拟网络子网打通

在国际版上japan-vent-servers子网上新建网关子网

clip_image007

接下来创建一个虚拟网络网关,这个创建过程大约持续半小时

clip_image008

接下来创建本地网络网关

clip_image009

等待虚拟网络网关创建完成后,接下来继续在本地网络网关上新建连接

clip_image010

新建一个S2S的链接,选择创建好的虚拟网关,设置一个共享密钥即可。

clip_image011

到这里国际版的配置就到一个段落了,接下来回到国内版对chinanorthgw进行下网络配置

开放如下端口

clip_image012

登录到创建好的chinanorthgw虚拟机配置,安装远程访问角色

clip_image013

选择DA和路由后一直下一步直至完成

clip_image014

安装完成,点击关闭

clip_image015

打开路由和远程访问

clip_image016

右键配置并启用路由和远程访问

clip_image017

选择两个专用网络之间的安全连接

clip_image018

下一步

clip_image019

下一步

clip_image020

点击完成

clip_image021

创建一个接口名称

clip_image022

下一步

clip_image023

选择IKEv2,下一步

clip_image024

填写国际版上JapanVirtualGW虚拟网络网关的公网IP地址104.214.139.64 (JapanVirtualGW-IP)

clip_image025

clip_image026

下一步

clip_image027

添加国际版japannginx虚拟机所在的虚拟网络

clip_image028

下一步

clip_image029

直接下一步

clip_image030

对新建好的Azure S2S属性编辑

clip_image031

设置安全为共享密钥,填写国际版上本地虚拟网络网关S2S里的共享密钥

clip_image032

添加一条静态路由,这条路由的目标是Azure上我的虚拟网络Japan-vnet地址192.80.0.0/255.255.0.0/256

clip_image033

已经自动连接好了

clip_image034

同时也可以在国际版本地网络网关——连接——S2S状态里看到已连接

clip_image035

此刻在国内版chinanorthgw虚拟机里ping国际版的japannginx虚拟机内部IP地址192.80.1.4

clip_image036

反之从国际版的japannginx虚拟机ping国内版的chinanorthgw虚拟机内网IP也可以通了

clip_image037

接下来在国内版chinanorthgw虚拟机上安装IIS,并配置一个简单的网页

clip_image038

记得在系统防火墙也开放这个5555端口

clip_image039

接下来就登录到国际版Japannginx虚拟机里配置nginx了

老规矩,还是先设定Root密码并切换到root登陆

Sudo passwd root

[输入zjunsen密码]

[设置root新密码]

[再次输入设置的root新密码]

su -

[输入root密码]

clip_image040

因为我这里是测试环境,这里我就把防火墙和SELinux关掉

clip_image041

clip_image042

重启该虚拟机后登录切换到root账户,然后开始添加Nginx存储库

yum install epel-release

clip_image043

再安装nginx

clip_image044

安装完成以后,启动nginx

systemctl start nginx

clip_image045

查看nginx版本

clip_image046

需要在Azure门户上对该虚拟机开放80端口

clip_image047

然后可以测试打开这个公网IP就看到nginx的网站了

clip_image048

接下来我们要开始做反向代理了,让nginx的80端口去中继到国内版chinanorthgw虚拟机的内网IP地址的IIS站点5555端口

clip_image049

配置nginx.conf文件vim nginx.conf

修改如下,完成后保存退出

clip_image050

让Nginx重新加载nginx -s reload

或重新启动nginx服务systemctl restart nginx

此刻从japannginx虚拟机的公网IP访问看看,可以看到能打开国内chinanorthgw虚拟机上配置的IIS虚拟站点端口为5555的网页了

clip_image051

这样就实现了通过访问Nginx提供的web服务,有nginx代理您的请求从S2S访问到国内chinanorthgw虚拟机上的web服务。当然中间的S2S替换成专线就解决了国外用户访问部署在国内的网站速度问题了。

标签:S2S,网关,chinanorthgw,Nginx,虚拟机,访问,nginx,国际版
来源: https://blog.51cto.com/rdsrv/2429919