前言
最近为某银行系统部署了一套商城系统,网络环境比较特别,思路记录下,其中商场系统使用前后端分离模式部署。
该银行网络环境:
外网服务器:外网可以访问到它,不能访问外网。
网关服务器:跟外网服务器和内网服务器互通,外网双向隔离。
内网服务器:外网双向隔离
特殊点:
外网访问外网服务器只能通过该公司域名访问,但域名已经被其他程序占用,
且不能开放其他端口,所以只能在url请求本机时强制前置一个关键词,通过关键词来判断是否是该服务的请求,
以及是访问本机前端包中的静态资源(如css,js),还是需要转发到网关服务器(各种api接口)。
ngixn配置:
外网服务器(部署前端代码)
- 如果是happgo前缀的请求,直接访问本机上的静态文件
- 如果是happygo_backend前缀的请求,则剔除该关键词后,请求网关获得api返回值
- 注意关键词后面的斜杠,有斜杠剔除关键词,无斜杠保留关键词
server {
listen 443;
location /happygo {
root /www/wwwroot/;
index index.html index.html;
try_files $uri $uri/ /index.html;
}
location /happygo_backend/ {
proxy_pass http://网关IP/;
}
}
网关服务器
- 接受来自外网区的请求,转发给内网服务器,拿到数据后,返还给外网服务器
server {
listen 80;
location / {
proxy_pass http://内网服务器IP/;
}
}
内网服务器(部署后端代码)
- 接受来自网关的请求,拿到数据后,返回给网关服务器
server {
listen 80;
location / {
index index.html index.htm index.php;
try_files $uri $uri/ /index.php$is_args$query_string;
}
}
原创不易,欢迎点赞收藏,转发请注明出处