实现远程访问无公网IP的服务

SatLB介绍

SatLB是配合SatRDA使用的高效的负载均衡服务器,通过SatLB可以实现客户端外网访问多个没有外网ip的satserver,也可以将多个 SatRDA的服务SatServer连接到一起组成高可用的集群。

服务器端运行环境

  • WindowsXP及以上
  • Linux

下载地址:

  • QQ群:345559891
  • Delphi开发群:374683171

使用场景

外网访问无固定IP的服务端

SatLB部署在有固定ip的公网(云服务器),SatServer部署在没有公网IP的内网,内网的SatServer连接到公网的SatLB,在外网的客户端可以访问公网的SatLB,SatLB会把连接转到内网的SatServer上,实现访问没有公网IP的内网服务。

实现远程访问无公网IP的服务_第1张图片

 使用案例

实际使用中可以在云服务器部署一个SatLB,各个门店(或客户)的数据库在门店的本地机器中,门店的机器不需要有固定外网IP,在门店的机器上部署SatServer并配置连接到SatLB,其中各个门店Service名称不同。然后客户端可以通过SatLB访问到指定的门店数据

负载均衡

SatLB与多个SatServer部署在同一个局域网,多个SatServer连接到SatLB形成集群,客户端访问时指定SatLB的地址,SatLB会把连接均匀分配到SatServer上,实现负载均衡

实现远程访问无公网IP的服务_第2张图片

使用案例

实际使用中如果客户对高可用要求较高,可以购买2台以上云主机,其中一台有外网带宽的部署SatLB,其它机器部署SatServer并配置连接到SatLB,客户端访问指定的SatLB的地址。

#配置说明

#SatLB配置

路径server/config/lb.cfg 用notepad++打开后,配置如下:

{
	"Port": 6060,
	"Log": 1
}

"Port": 6060 表示设置启动端口号为6060
"Log": 1 表示日志打开,如果为0则日志关掉,日志在调试时打开,生产环境时请关闭日志,避免卡住的风险

#SatServer配置

路径server/config/config 用notepad++打开后,配置如下:

{
	"TAG": "QQ:9091178",
	"Port": 5555,
	"Https":false,
	"Log": 1,
	"SecrectKey":"",
	"LBAddr":"127.0.0.1:6060",
	"Service":"satrda"
}

其中LBAddr,Service参数和负载均衡相关,其它参数见SatRDA后台配置 "LBAddr":"127.0.0.1:6060" 表示SatLB的地址为127.0.0.1:6060,这里127.0.0.1表示本机IP,请换成实际IP。6060和前面配置的SatLB端口号一致 "Service":"satrda" 表示当前服务名为satrda,(这里satrda可以修改为自己指定的名称)。多个satserver可以定义相同的Service,相同Service的服务端组成一个集群,客户端通过SatLB访问指定的Service如satrda时,会连接到一个Service为satrda的SatServer上。

建议通过SatRDA后台配置的基础配置进行配置

#示例

  1. 按配置说明配置好配置文件

  2. 双击运行Server\SatLB.exe

  3. 双击运行Server\SatServer.exe
    连接成功显示:

satlb connected
  • 本机模拟运行另一个satserver实际生产时,放在另一台机器。拷贝Server目录到另一个目录,并修改config文件的端口号为6666,双击运行SatServer.exe
  • 在浏览器输入 http://127.0.0.1:6060/api/test?srv=satrda 显示 hello world! 表示成功!

通过satrda驱动连接satlb访问数据库

satrda驱动支持C#、PB、VB、Delphi等程序直连程序直接转为三层。见 PB三层架构 

  • 修改示例连接字符串ls_server指向SatLB地址ls_server = "127.0.0.1:6060" 连接串加上Service=satrda 表示访问名称为satrda的服务

    PB连接串如下:

SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm = "ConnectString='driver=Smart ODBC Driver;Server=" + ls_server +&
	";DB_NAME=" + ls_db + ";HTTPS=0;code=12345;TrimSpaces=1;Service=satrda',PBMaxBlobSize='0'"

访问其它服务(如.net和java等)

如果我们开发了一个web服务,这个web服务部署在客户的没有公网IP的机器上,我们也可以通过satrda的服务的反射代理功能进行访问。

实现远程访问无公网IP的服务_第3张图片

其中SatLB部署在云服务器上,SatServer和IIS部署在客户的服务器上,不同的SatServer配置不同的Service连接到SatLB,配置SatServer的反向代理指向IIS。配置完成后远程客户端就访问到IIS了。

配置反向代理插件

  • 进入SatRDA的后台管理界面
  • 选择插件管理查看reverse插件

实现远程访问无公网IP的服务_第4张图片

 其中Type是reverseProxy, Dir表示要反向代理到的地址, Url表示doc开头的调用会被代理。

如图中的配置,如果用户调用 http://127.0.0.1:5555/doc/satlb/config.html 就会调用到 http://www.satrda.com:5555/doc/satlb/config.html

你可能感兴趣的:(远程访问,无公网ip)