第一臺(tái)
第二臺(tái)
第一臺(tái)登錄
然后第一臺(tái)和第二臺(tái)就開(kāi)始報(bào)錯(cuò)
這是什么原因,
確認(rèn)下gateway所在機(jī)器的幾個(gè)內(nèi)部端口防火墻放行了嗎?
如果我在第一臺(tái)服務(wù)器ping第二臺(tái)服務(wù)器的內(nèi)網(wǎng)IP 如果ping不通,是不是$gateway->lanIp="就要填寫(xiě)外網(wǎng)IP"
既然是在同一個(gè)內(nèi)網(wǎng),那先排查下為何兩臺(tái)內(nèi)網(wǎng)服務(wù)器無(wú)法互通; 對(duì)于不在同一內(nèi)網(wǎng)的機(jī)器,一般才考慮將lanIp設(shè)置成目標(biāo)機(jī)器外網(wǎng)IP,當(dāng)然內(nèi)網(wǎng)也可以這樣設(shè)置,注意防火墻策略就好。
大佬你最后提到的“將lanIp設(shè)置成目標(biāo)機(jī)器外網(wǎng)IP”,是說(shuō)我第一臺(tái)機(jī)器的$gateway->lanIp=“第二臺(tái)機(jī)器的外網(wǎng)IP嘛”。
1:我第一臺(tái)機(jī)器ping第二臺(tái)機(jī)器的內(nèi)網(wǎng)IP ,ping不通,就是不在一個(gè)內(nèi)網(wǎng)里,
2:然后就要吧$gateway->lanIp=""這一步本來(lái)要填寫(xiě)本機(jī)內(nèi)網(wǎng)IP的改成本機(jī)外網(wǎng)IP。
但是我換成外網(wǎng)IP就會(huì)提示我這個(gè)錯(cuò)誤: stream_socket_server(): unable to connect to tcp://39.97.123.163:2800 (Cannot assign requested address) in /root/hcl/GatewayWorker/vendor/workerman/workerman/Worker.php on line 2226
第1臺(tái)服務(wù)器lanIp換成本機(jī)內(nèi)網(wǎng)IP后會(huì)報(bào)錯(cuò):GatewayConnection Error : 1 ,connect 第2臺(tái)服務(wù)器內(nèi)網(wǎng)IP:2801 fail after 127.2276 seconds
這是第1臺(tái)代碼
$gateway = new Gateway("tcp://0.0.0.0:8282");
$gateway->name = 'YourAppGatewa';
// gateway進(jìn)程數(shù)
$gateway->count = 2;
// 本機(jī)ip,分布式部署時(shí)使用內(nèi)網(wǎng)ip
$gateway->lanIp = '39.97.123.163';
$gateway->startPort = 2800;
// 服務(wù)注冊(cè)地址
$gateway->registerAddress = '39.97.123.163:1238';
39.97.123.163 并不是當(dāng)前gateway機(jī)器的真實(shí)公網(wǎng)IP, 應(yīng)該是個(gè)阿里云代理IP,這樣的話 $gateway->lanIp = '39.97.123.163'; 也是行不通的。
要么必須有真實(shí)的公網(wǎng)IP,要么就是內(nèi)網(wǎng)要能互通; 兩個(gè)要么若都不滿足,那迫不得已還有一種偏方就是需要改源代碼;