链接:https://www.zhihu.com/question/26954479/answer/171177491
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
大概有三种方式:
1、使用网闸的映射功能:即在网闸中配置指定ip段的外网机器,只能访问内网指定ip、端口的机器所提供的指定服务。
评价:此种方式较为方便,但不是最安全的。
2、文件同步功能:此种方式需要一台外网服务器和一台内网服务器,在内外网服务器上分别部署webservice服务程序,并在内外网机器上分别建立共享文件夹,供网闸进行文件的同步(从内网到外网,从外网到内网)。
实现思路大致是:
(1)、外网服务器部署的webservice程序供外网用户访问,一旦接受请求,则将请求生成xml或者其他格式文件,放到外网服务器的共享请求目录。
(2)、通过在网闸中配置内外网的共享请求目录与共享响应目录,网闸会定时(最低一分钟)扫描内外网服务器的指定的若干目录,看有无新增文件,有则同步过去。
(3)、内网服务器webservice程序内部定时扫描指定请求目录,网闸将外网服务器的请求文件同步到内网服务器的请求目录后,内网程序检测到请求文件则立即触发调用本地或者内网其他机器的webservice服务,并将结果生成响应文件放到响应目录。
(4)、网闸检测响应目录的新增文件,将文件同步到外网服务器的响应目录,外网服务器程序线程接受到请求后, 一直等待指定时间,扫描响应目录下有无响应文件产生(请求文件与响应文件采取同名方式,以便区分),读取到响应文件后,返回给外网用户调用者。
评价:此种方式虽然较上种方式安全,但网闸扫描频率最快一分钟扫描一次的限制便将该种方式kill了(让客户等待至少2分钟是完全不可行的)。
然而对于新的网闸内外网数据交换平台可以支持1s扫描一次,因此对于需要交换图片、视频等应用,则可考虑升级旧网闸数据交换系统;此时采取文件同步是比较理想的。
3、数据库同步方式:
实现思路:
(1)、需要两台服务器,内网服务器与外网服务器,两台机器同时部署两个程序(程序不完全相同),两台服务器都要安装数据库,并建立相同的表结构(指需要通过网闸同步的表的结构相同,本例中需要响应表和请求表)
(2)、在网闸中配置数据库同步,需要两个库的连接方式,及需要同步那些表;注意,同步的表字段不可有clob或者blob等类型(网闸不能同步,猜测是大字段类型不能导出的原因),基本类型最好。
(3)、外网webservice程序接收请求,将请求插入到请求表中,然后线程休眠指定时间后读取响应表中的响应结果。
(4)、网闸将外网数据库的请求表中的插入的数据,即时(可能采用触发器,具体不知,相当于即时)同步到内网数据库的请求表中。
(5)、对内网请求表预先建立行级触发器,当请求表每插入一条数据时,即执行触发器,在触发器中调用内网的webservice程序。
(6)、可在触发器中插入结果到响应表中,若是业务逻辑复杂,则可在webservice程序内部将结果插入到响应表中。
(7)、网闸将响应表中数据即时同步到外网服务器的响应表中。
(8)、(3) 中等待的线程在限定时间内每隔100ms(自己指定)查询响应表,查询到等待的结果则返回给客户。
4、总结:映射方式与数据库同步方式最为靠谱,但若是对安全性要求非常高,则建议使用数据库同步方式,否则使用映射方式最为便捷。
Serv-U 是一种被广泛运用的FTP服务器端软件,支持 9x/ME/NT/2K 等全Windows系列。它设置简单,功能强大,性能稳定。FTP 服务器用户通过它用 FTP协议能在 internet上共享文件。它并不是简单地提供文件的下载,还为用户的系统安全提供了相当全面的保护。例如:您可以为您的FTP 设置密码、设置各种用户级的访问许可等等。Serv-U不仅100%遵从通用FTP标准,也包括众多的独特功能可为每个用户提供文件共享完美解决方案。它可以设定多个FTP 服务器、限定登录用户的权限、登录主目录及空间大小等,功能非常完备。它具有非常完备的安全特性,支持SSl FTP传输,支持在多个Serv-U和FTP客户端通过SSL加密连接保护您的数据安全等。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)