项目是laravel
框架引入的GatewayWorker
,第一个项目正常运行的,已经几个月,第二个项目是今天部署的,运行的时候,日志有异常,然后查看端口是有在运行,但是socket
连不上。
有没有大佬知道这是什么问题?
使用ps aux | grep -i workerman
查看了一下
在本地win
系统,通过.bat
文件先后打开了两个GatewayWorker
,也出现了同样的问题
根据图中提供的参考地址http://doc2.workerman.net/send-buffer-to-worker-fail.html
,说注册地址端口一样,但我设置的不一样,难道是ip
地址127.0.0.1
的问题吗,我试了一下,果然是,把第二个的lanIp
地址改成127.0.0.2
,好了。一直以为是端口,没想到是地址.
宝塔上的情况和本地win
有些不一样,感觉闹了一些小乌龙。
之前第一个项目,客户连接服务器的时候,一直使用的域名加端口(www.xxx.com:8080
)的方式,没有任何问题。
这次部署第二个项目的时候,用的同一个域名,不同的端口号,然后一直连接不上,才导致测试了很多可能情况。刚刚我试了一下,客户端使用公网IP连接服务器没有任何问题,Register
地址和lanIp
地址都不需要调整,可以和第一个项目一样。
看手册运行多个gatewayWorker实例部分
我两个项目是分开的,配置的监听端口,注册地址端口和进程端口都不一样的,专门检查过了,还是会报这个错
进展 20230518-1 和 进展 20230518-2结论都是错的。
按照文档lanIp可以一样,端口不能一样。
如果是部署两套独立的gatewayWorker,两套Register就不能一样,否则就会互相通讯,成为一套。
没有以daemon方式运行吧
这个方式也有问题,启动后使用netstat -tln查看,都启动了,但是应用管理器那里还是“已暂停“状态
start in debug mode 意思是以 调试方式运行,不是爆粗日志...
如果gatewayWorker配置没问题,那就是服务器安全组或者宝塔或者防火墙没开放对应端口
启动后看下status
我估计还是配置问题,使用ps aux | grep -i workerman查看了一下,第二个项目的端口多运行了一个
我也碰到该问题,好像宝塔应用管理器的问题,识别不了daemon模式的进程,不用daemon模式就正常了
试试终端启动试试
对,这个模式开启确实有些问题。我昨天可能闹了点乌龙,现在解决了。