通过haproxy获取MQTT请求的客户端IP

问题描述

我已配置X_FORWARDED_FOR来捕获HTTPS请求的客户端IP,并且它按预期工作。

但是,对于MQTT,数据是通过SSL发送的,而HTTP / S不会出现在图片中。

ssl://<HOST_NAME>:<PORT>

我尝试将以下内容添加到HAproxy配置上的后端服务器。到目前为止没有运气。

backend TestServer
    mode tcp
    server TestServer01 10.6.186.24:48080 send-proxy-v2
------
    server TestServer01 10.6.186.24:48080 send-proxy
------    
    server TestServer01 10.6.186.24:48080 send-proxy-v2-ssl

是否有一种方法可以通过更改HAProxy配置来捕获传入MQTT请求的客户端(源)IP?

解决方法

否,MQTT协议中没有存储原始客户端IP地址的位置(例如向HTTP请求添加额外的标头)。

代理实际上只是将到达其公共端口的数据包转发到后端服务器(可能做SSL终止的情况除外),它根本不会更改数据包。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...