EMQX集群通过Nginx SSL代理实现MQTT连接失败,但WSS连接正常的问题求助
EMQX集群通过Nginx SSL代理实现MQTT连接失败,但WSS连接正常的问题求助
大家好,我碰到了一个棘手的问题想请教各位:我搭建了一个包含3个节点的EMQX集群,用Nginx做负载均衡。目前通过WSS协议能正常连接到负载均衡器,也能正常获取MQTT主题,但用普通MQTT协议却怎么都连不上集群。
我参考了EMQX官方关于集群负载均衡的部署文档,在nginx.conf里配置了stream段,而且我的Nginx是编译了stream_ssl_module模块的,具体配置如下:
stream { log_format basic '$proxy_protocol_addr - $remote_addr [$time_local] ' '$protocol $status $bytes_sent $bytes_received ' '$session_time'; access_log /var/log/nginx/access.log basic; upstream emqx-tcp { zone tcp_servers 64k; hash $remote_addr; server emqx-01.node-01:1883; server emqx-02.node-02:1883; server emqx-03.node-03:1883; } server { listen 8883 ssl; #status_zone tcp_server; proxy_pass emqx-tcp; proxy_buffer_size 4k; ssl_handshake_timeout 10s; ssl_certificate /certs/domain.name.crt; ssl_certificate_key /certs/domain.name.key; } }
同时,每个EMQX节点的emqx.conf里我都配置了TCP监听器,开启了proxy_protocol:
listeners.tcp.default { bind = "0.0.0.0:1883" proxy_protocol = true }
当我尝试用MQTT客户端(我用的是MQTT Explorer)连接时,客户端一直提示“Disconnected from server”,而Nginx的access.log里会出现这些记录:
- - my.ip.addr.ess [10/Jul/2023:13:49:10 +0000] TCP 200 0 79 3.428 - - my.ip.addr.ess [10/Jul/2023:13:49:15 +0000] TCP 200 0 79 3.435 - - my.ip.addr.ess [10/Jul/2023:13:50:01 +0000] TCP 200 0 79 3.478 - - my.ip.addr.ess [10/Jul/2023:13:50:07 +0000] TCP 200 0 79 3.424
另外补充一下,我的WSS连接用的HTTP代理配置是正常工作的,配置如下:
upstream emqx-ws { least_conn; server emqx-01.node-01:8083 weight=1; server emqx-02.node-02:8083 weight=1; server emqx-03.node-03:8083 weight=1; } server { listen 9022 ssl; server_name domain.name; ssl_certificate /certs/domain.name.crt; ssl_certificate_key /certs/domain.name.key; ssl_prefer_server_ciphers on; location / { proxy_http_version 1.1; proxy_set_header Host $host; proxy_set_header X-Real_IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr:$remote_port; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_read_timeout 86400; proxy_pass http://emqx-ws/mqtt; } }
我已经把能找到的相关资料都翻了一遍,但还是没能解决这个问题,恳请各位大佬帮忙分析下问题出在哪里!
备注:内容来源于stack exchange,提问作者Rodion Baskakov
相关产品推荐
相关产品推荐

