政务内外网环境,内网单向访问外网,数据传输解决方案

原创
2020/09/21 18:16
阅读数 2.1W

概述

客户找到了我们,描述了内外网的部署环境限制,正好我们之前处理过类似问题,这次做下总结。

通过物理隔离内外网。外网服务器不能主动访问内网服务器,但可以通过“网闸”被动接受内网服务器数据。

系统部署的要求是,必须将应用系统和数据库部署到内网服务器上,并提供外网或互联网访问到系统。

由于网络限制,外网不能主动去调用内网服务器系统,无法通过路由表设置实现数据交互。

只能通过网闸的内网映射外网的某个 TCP 端口,进行数据传输,实现“信息摆渡”,如下:

问题思考

通过网闸内外网单向传输,综合考虑以下三种,信息摆渡方案:

方案1:内网通过 Socket 客户端主动连接,外网 Socket 服务端,建立 TCP 连接后方可进行数据交互
方案2:外网部署 MQ 服务器,内外网互相订阅 MQ 收发消息队列,用来接收和发送消息。
方案3:政务内网数据交换系统,通过 WS 实现数据交互。

由于系统已经开发完成,并且内网系统很多,交互接口就更多了,我们不可能去一个一个的去修对应接口,这样工作量是非常巨大的。

怎么才能开发一个信息摆渡中间件,适应该网络换的所有系统的解决方案呢?

转载本文请包含来源网址:https://my.oschina.net/thinkgem/blog/4624519

解决方案

我们都知道访问应用系统是通过的 HTTP 协议进行的,那我们是不是这样:

响应流程:浏览器 -> HTTP 请求封包 -> 信息摆渡 -> HTTP 请求解包 -> 反向代理 -> 访问 JeeSite 系统
-> 将响应结果再进行 HTTP 响应封包 -> 信息摆渡 -> HTTP 响应解包 -> 浏览器

技术实现点如下:

1、对请求对象和响应对象的封包和解包,二进制方式发送和接受。
2、只写一个 HTTP 反向代理,实现 HTTP 客户端。
3、信息摆渡环节的数据响应性能因素。
4、除了文本数据传输还有文件传输。

http://jeesite.com

展开阅读全文
打赏
2
1 收藏
分享
加载中
ThinkGem博主
@muyu 实现了
05/20 14:32
回复
举报
这个需求实现了吗
05/20 14:21
回复
举报
这个好复杂,竟然有客户的需求,这么绕!要把http协议再封装。
01/19 17:05
回复
举报
更多评论
打赏
3 评论
1 收藏
2
分享
返回顶部
顶部