HAProxy:将客户端ip(ssl流量)转发到后端



如果我向后端服务器发送SSL流量,我可以在应用程序日志中看到客户端/源IP。

ssl://host_name:8883

问题:如果我把haproxy放在后端服务器之前,我会得到haproxy IP作为源IP。SSL终止发生在后端服务器上。

haproxy.cfg:

defaults
maxconn 64000
option http-server-close
option httplog
option forwardfor
option contstats
timeout connect         5000ms
timeout client          30000ms
timeout server          30000ms
timeout tunnel          3600000ms
timeout http-keep-alive 1000ms
timeout http-request    30000ms
timeout queue           30000ms
errorfile 504 /var/504.http
frontend tcp-frontend-mqtt-tls
mode tcp
bind :8883 accept-proxy
log global
log-format %ci %fi:%fp [%t] %ft %b/%s %Tw/%Tc/%Tt %B %ac/%fc/%bc/%sc/%rc %sq/%bq
tcp-request connection reject if { src -f /var/ip_blist.lst }
default_backend tcp-backend-mqtt-tls
backend tcp-backend-mqtt-tls
mode tcp
log global
balance leastconn
source 0.0.0.0 usesrc clientip
server mqtt-node-0 hostname:61008 resolvers my-dns check inter 1000

我已经尝试添加send-proxyv-v2send-proxy

server mqtt-node-0 hostname:61008 resolvers my-dns check inter 1000 send-proxy-v2
server mqtt-node-0 hostname:61008 resolvers my-dns check inter 1000 send-proxy

但这并没有帮助,因为SSL终止发生在后端。我是不是错过了什么?

send-proxy是一个很好的方法,但您的后端服务器/应用程序需要能够解析PROXY协议来接收IP信息。

最新更新