我想以 tcp 模式将真实客户端的 IP 地址从 haproxy 转发到我的后端服务器。Haproxy的配置如下:
frontend main
bind *:80
mode http
option forwardfor
option http-server-close
default_backend app-main
frontend https_main
bind *:443
mode tcp
option tcplog
option tcpka
default_backend app-ssl
backend app-main
balance roundrobin
server web1 192.168.1.22:8080 check fall 3 rise 2
server web2 192.168.1.33:8080 check fall 3 rise 2
backend app-ssl
balance roundrobin
mode tcp
option ssl-hello-chk
server web3 192.168.1.44:443
Run Code Online (Sandbox Code Playgroud)
http 请求的后端服务器是 apache,我用日志行替换了 httpd.conf 中的以下行,所以我现在可以正确获取客户端的 ip 地址:
LogFormat "%h %l %u %t \"%r\" %>s %b %{X-Forwarded-For}i" common
Run Code Online (Sandbox Code Playgroud)
我的 …