-
MQ X 版本:5.2.1 docker 开源版
-
操作系统及版本:centos7
问题描述:目前用两台服务器分别部署了一个emqx节点,并加入到集群中,可通过mqttx客户端可以分别连接到各个节点收到互相的消息。现在问题是我通过nginx配置stream实现tcp 负载均衡不生效或根本没有监听到端口!
-
已确保Nginx已启用stream模块:
-
Nginx配置文件如下:
-
末生效依据:用mqttx客户端连接
node1:
node2:
MQ X 版本:5.2.1 docker 开源版
操作系统及版本:centos7
问题描述:目前用两台服务器分别部署了一个emqx节点,并加入到集群中,可通过mqttx客户端可以分别连接到各个节点收到互相的消息。现在问题是我通过nginx配置stream实现tcp 负载均衡不生效或根本没有监听到端口!
已确保Nginx已启用stream模块:
Nginx配置文件如下:
末生效依据:用mqttx客户端连接
node1:
Nginx所在机器是否是其中一个EMQ节点?
是的,在node1上
Nginx所监听的端口1883换一个试试看,
node1上的EMQ启动后本身就占用1883,8883, nginx所监听的1883应该不会生效的。
那可以换成8884一个新端口,然后开端口后访问尝试嘛?
可以的吧,8884打开后,用mqttx连接8884试试看
mqttx连不上 Error: connect ECONNREFUSED ip:8884
8884端口安全组开了吗,我这边试了下可以的
8884端口也没有被占用
1、防火墙8884是否也打开
2、nginx监听换成8884后是否重新 reload 生效
8884端口开了,我nginx配置文件reload生效后,还把nginx restart 了,就是感觉nginx配置没生效,但我故意写错配置文件,却nginx -t 能发现错误
不知道为什么就是没有走nginx
试着把两个权重先去掉看看 我也纳闷了
负载均衡策略我都尝试了个遍,没有任何反应
要不这样,
1、你把nginx的那台节点的EMQ停掉;
2、nginx监听改回1883,负载均衡处把node1节点的注释掉,然后重新reload,是配置生效。
3、使用mqttx重新连接
相当于先只代理 node2上的EMQ,看看能走通过不
我明白你的意思,已经尝试了但直接连不上,Error: connect ECONNREFUSED ip: 1883,证明以前都是走的单机访问的,这是为啥呢?
可以加微信讨论下
bearx__
× 问题尚未解决,留痕做记录
权重是1跟3怎么可能会均衡,你想均衡配置成1:1呀。但是这个也不能保证百分百均衡