我正在尝试在 Centos-7 机器上设置带有透明代理的 HAProxy。环境:(2-http 服务器 ==>> HAProxy 服务器 ==>> ClientVM)
我已经使用普通 haproxy 配置了 http 服务器并且它运行良好。
当我配置 haproxy.cfg 文件如下时:
global
log /dev/log local0
log /dev/log local1 notice
chroot /var/lib/haproxy
stats timeout 30s
#user haproxy
#group haproxy
user root
group wheel
daemon
defaults
log global
mode tcp
option tcplog
option dontlognull
timeout connect 5000
timeout client 50000
timeout server 50000
frontend App_in
**bind haproxy-ip:80 transparent**
mode tcp
default_backend App_out
backend App_out
mode tcp
log global
**source 0.0.0.0 usesrc clientip**
balance roundrobin
server http-1 http-1-ip:80
server http-2 http-2-ip:80
我可以启动 haproxy 服务器,并且从 haproxy 服务器的终端获取响应 curl,但是当我从 ClientVM curl 时,我得到的响应为curl:(52)服务器回复为空:
我还执行了 iptables-rule.sh 脚本来在 HAProxy 服务器上配置 iptables,如下所示:
#!/bin/bash
iptables -F
iptables -F -t nat
iptables -t mangle -N DIVERT
iptables -t mangle -A PREROUTING -p tcp -m socket -j DIVERT
iptables -t mangle -A DIVERT -j MARK --set-mark 1
iptables -t mangle -A DIVERT -j ACCEPT
ip rule add fwmark 1 lookup 100
ip route add local 0.0.0.0/0 dev lo table 100