workman如何内外网部署

AccessDenied

有没有大兄弟搞过这个的?
 1.有一台云主机,上面部署了

Workerman version:3.5.14          PHP version:7.1.6
------------------------ WORKERS -------------------------------
worker               listen                              processes status
WebServer            http://0.0.0.0:4433                 2         
ChatBusinessWorker   none                                4         
Register             text://0.0.0.0:1236                 1         
ChatGateway          websocket://0.0.0.0:7272            4         

2.内网有一台DMZ主机部署了 ChatGateway  注册地址写的 公网的云主机的。
 
想实现,在内网用户连内网的DMZ主机(内网用户无法访问公网),外网是的使用公网IP就行,业务逻辑是在外网的,但是发现跳坑里了,挣扎了一天,还在里面。

3653 3 0
3个回答

喵了个咪

DMZ主机的 start_gateway.php里lanIp设置成DMZ主机的外网ip,没准可以做到你要的效果

  • AccessDenied 2018-10-16

    行不通的,这个试过了,之后gateway内部通讯2300都不能连了 unable to connect to tcp://XXXXXXX:2300

  • AccessDenied 2018-10-16

    不能通过公网访问自己,然后,判断gateway往云服务器上的注册中心注册时,更改这个127.0.0.1为外网IP后,还是报错

AccessDenied

1、Register、Gateway、BusinessWorker进程启动
2、Gateway、BusinessWorker进程启动后向Register服务进程发起长连接注册自己
3、Register服务收到Gateway的注册后,把所有Gateway的通讯地址保存在内存中
4、Register服务收到BusinessWorker的注册后,把内存中所有的Gateway的通讯地址发给BusinessWorker
5、BusinessWorker进程得到所有的Gateway内部通讯地址后尝试连接Gateway
6、如果运行过程中有新的Gateway服务注册到Register(一般是分布式部署加机器),则将新的Gateway内部通讯地址列表将广播给所有BusinessWorker,BusinessWorker收到后建立连接
 
根据原理,发现  判断内网的gateway往云服务器上的注册中心注册时,更改这个127.0.0.1为外网IP后
云端,应该是第六步错误了,BusinessWorker无法跟内网的Gateway通讯,无法访问到内网的2300,不清楚是什么原因,已经做了虚拟主机的映射

  • 暂无评论
AccessDenied

已自行解决
 
如果不想修改源码,架设VPN即可
 

[attach]1277[/attach]
 

  • 暂无评论
年代过于久远,无法发表回答
🔝