环境信息
- EMQX 版本:4.4.4
- 操作系统及版本:centos7
- 其他
问题描述
我在本地开发机上跑单个emqx容器,用mqtt.js库进行websocket是正常的,ws://127.0.0.1:8083/mqtt
但是在云主机中,haproxy在多个emqx容器中做负载均衡,1883的是正常,8083的websocket行不通,想知道怎么配置是哪里不对呢?
配置文件及日志
下面是haproxy的配置,反复调试都行不通,可以确定是haproxy的配置问题
frontend emqx_ws
mode http
option httplog
bind *:8083
acl host_ws hdr_beg(Host) -i ws.
acl hdr_connection_upgrade hdr(Connection) -i upgrade
acl hdr_upgrade_websocket hdr(Upgrade) -i websocket
use_backend emqx_ws_back if hdr_connection_upgrade hdr_upgrade_websocket
default_backend emqx_ws_back
backend emqx_ws_back
mode http
balance roundrobin
acl hdr_connection_upgrade hdr(Connection) -i upgrade
acl hdr_upgrade_websocket hdr(Upgrade) -i websocket
acl hdr_websocket_key hdr_cnt(Sec-WebSocket-Key) eq 1
acl hdr_websocket_version hdr_cnt(Sec-WebSocket-Version) eq 1
server emqx-1 node1.emqx.io:8083 check-send-proxy send-proxy-v2
server emqx-2 node2.emqx.io:8083 check-send-proxy send-proxy-v2