配置Nginx 负载均衡后连接不上Nginx代理的端口

  • MQ X 版本:5.3.2 docker 开源版
  • 操作系统及版本:Ubuntu

问题描述:目前在同一台服务器分别部署了三个emqx节点,并加入到集群中,可通过mqttx客户端可以分别连接到各个节点收到互相的消息。现在问题是我通过nginx配置stream负载均衡后,无法通过nginx代理的端口连接emqx集群

  1. 已确保Nginx已启用stream模块:

2.emqx集群创建成功,如下:
image
集群中节点的dashboard可以正常访问,也可以通过MQTTX对单个节点进行直接连接

3.Nginx配置文件如下:


3个emqx节点和nginx都是在同一个docker network下,且emqx节点的1883接口都分别作了接口映射,如emqx1的1883接口映射到60001
Nginx启动后,从客户端可以正常访问Nginx的8080接口

但是emqx集群代理的8884接口无法访问,通过MQTTX建立连接返回

emqx对应端口配置也要开启protocol proxy模式

emqx的端口在哪里配置,我再conf文件里面没有找到呢
image


你的60001 60002 60003配置

我在dashboard控制面板这儿把proxy_protocol改成了true,还是连不上stream代理的接口


还是报一样的错误
image

  1. 看看 emqx 有没有错误日志。
  2. emqx_ctl listeners 看看错误统计,看是不是 proxy_protocol 的问题。
  3. 看看 nginx 的 debug 日志。

你这个8884端口防火墙没放通吧

哦 econnrefused, 端口不通。

确实是proxy_protocol的问题,把nginx的proxy_protocol设置成off后就可以正常访问通了