耀扬软件 原创 2024-09-25
客户找到了我们,描述了内外网的部署环境限制,正好我们之前处理过类似问题,这次做下总结。
通过物理隔离内外网。外网服务器不能主动访问内网服务器,但可以通过 “网闸” 被动接受内网服务器数据。
系统部署的要求是,必须将应用系统和数据库部署到内网服务器上,并提供外网或互联网访问到系统。
由于网络限制,外网不能主动去调用内网服务器系统,无法通过路由表设置实现数据交互。
只能通过网闸的内网映射外网的某个 TCP 端口,进行数据传输,实现 “信息摆渡”,如下:
通过网闸内外网单向传输,综合考虑以下三种,信息摆渡方案:
方案 1:内网通过 Socket 客户端主动连接,外网 Socket 服务端,建立 TCP 连接后方可进行数据交互
方案 2:外网部署 MQ 服务器,内外网互相订阅 MQ 收发消息队列,用来接收和发送消息。
方案 3:政务内网数据交换系统,通过 WS 实现数据交互。
由于系统已经开发完成,并且内网系统很多,交互接口就更多了,我们不可能去一个一个的去修对应接口,这样工作量是非常巨大的。
我们都知道访问应用系统是通过的 HTTP 协议进行的,那我们是不是这样:
响应流程:浏览器 -> HTTP 请求封包 -> 信息摆渡 -> HTTP 请求解包 -> 反向代理 -> 访问 JeeSite 系统
-> 将响应结果再进行 HTTP 响应封包 -> 信息摆渡 -> HTTP 响应解包 -> 浏览器
技术实现点如下:
1、对请求对象和响应对象的封包和解包,二进制方式发送和接受。
2、只写一个 HTTP 反向代理,实现 HTTP 客户端。
3、信息摆渡环节的数据响应性能因素。
4、除了文本数据传输还有文件传输。