docker-compose环境下,NGINX负载均衡EMQX集群问题

环境信息

  • EMQX 版本:4.2.3
  • 操作系统及版本:CENTOS7.2
  • 其他

问题描述

使用192.168.0.130和192.168.0.131搭建了EMQ集群,在192.168.0.132虚拟机上使用DOCKER-COMPOSE搭建NGINX。目前集群已搭建完成,可以使用MQTT.FX连接,但是NGINX负载后,MQTT.FX连接192.168.0.132不行

配置文件及日志

DOCKER-COMPOSE创建NGINX:
version: “3.3”
services:
mqtt_lsb:
container_name: mqtt_lsb
image: nginx:latest
ports:
- “1883:1883”
- “18083:18083”
privileged: true
volumes:
- ./dms/nginx_emqx.conf:/etc/nginx/nginx.conf
networks:
- smartcard-net

networks:
smartcard-net:
ipam:
driver: default
config:
- subnet: 10.10.11.0/24
gateway: 10.10.11.1
NGINX.CONF文件
events {
worker_connections 1024;
}
stream{
upstream mqtt_lsb {
server 192.168.0.130:1883;
server 192.168.0.131:1883;
}
server {
listen 1883;
proxy_connect_timeout 10s;
proxy_timeout 20;
tcp_nodelay on;
proxy_pass mqtt_lsb;
}
}

两台 EMQX 之前可以集群说明虚拟机间的网络是通的。
先排查下网络配置,看一下 nginx 和它所在的主机 192 网段之间能不能双向连通。
可以试一下 nsenter 这个工具。

是双向可以PING通,但是没法负载

看下这个文档,配置一下ngix对EMQX的代理