Я пытаюсь настроить HAProxy с прозрачным прокси на машине Centos-7. Env: (2-http сервер == >> HAProxy server == >> ClientVM)
Я настроил http-серверы с обычным haproxy, и он отлично работает.
Когда я настраиваю файл 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, но когда я заворачиваюсь из ClientVM, я получаю ответ как curl: (52) Пустой ответ от сервера :
Я также выполнил сценарий iptables-rule.sh для настройки iptables на сервере HAProxy, как показано ниже:
#!/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