给你点赞 @jokin 这是一个非常典型的场景。4层代理客户端实际的 IP 端口是需要 LB (HAproxy) 发过来的。要配置2个地方:
-
打开 emqx.conf 对应监听器的 proxoy_protocol:
listener.tcp.external.proxy_protocol = on
-
配置 HAProxy,让它把客户端的 IP/Port 发到 emqx。例如,在
haproxy.cfg
的 backend 的 每个server 后面加上send-proxy-v2
:# 参考: http://cbonte.github.io/haproxy-dconv/1.7/configuration.html#5.2-send-proxy-v2-ssl backend emqx_tcp_backend mode tcp server node1 192.168.1.100:1883 send-proxy-v2