MQTT集群+负载均衡后+proxy_protocol后。手机连接出现问题

对应的nginx配置如下:
stream {

upstream mqtt_tcp_server {
zone tcp_servers 64k;
hash $remote_addr;
server 192.168.1.20:1884 ;
server 192.168.1.21:1883 max_fails=2 fail_timeout=30s;
}

server {
listen 1883;
set_real_ip_from 192.168.1.20;
proxy_pass mqtt_tcp_server;
proxy_buffer_size 30M;
proxy_protocol on;
tcp_nodelay on;
}

}

然后也开启了: listener.tcp.external.proxy_protocol=on

然后设备、后台代码都可以连接,手机端也可以连接,但是手机端在订阅的时候,一旦发出特殊的订阅,就会失败,例如:gk30/M200700013/d2a;发现只要出现了d2a结尾的,就会失败,但是后台订阅这个主题又不会失败。


类似这个都是ok的,但是只要结尾是d2a,就失败了

查看后端与手机端的连接,发送的报文都是一样的。。。



另外,相同的代码,将nginx的proxy_protocol on配置(关闭),并调整emqx.conf的配置后,手机端就正常了。。。

需要提供一下 emqx 的版本号、emqx 日志。

已经处理完毕,原因是有同事增加了acl控制,判断了手机端的clientId的连接,做了d2a结尾的拦截。。。