首页 文章

HAProxy使用源IP连接到后端

提问于
浏览
0

我在具有多个接口的计算机上运行HAProxy,我希望从客户端请求所在的接口的源IP Build 到后端的连接 . 使用listen块中的文档中的source指令没有似乎这样做,因为所有连接似乎都来自第一个接口 . 我的配置如下:

listen f_192.168.1.10_http
  bind 192.168.1.10:80
  source 192.168.1.10
  mode http
  option httplog
  capture request header Host len 30

  use_backend b_domain1_http if { hdr(host) -i domain1.com }

listen f_192.168.1.20_http
  bind 192.168.1.20:80
  source 192.168.1.20
  mode http
  option httplog
  capture request header Host len 30

  use_backend b_domain1_http if { hdr(host) -i domain1.com }

backend b_domain1_http
  mode http
  option httplog
  server srv1 domain1.com:80 check inter 30s

IE浏览器 . 我很难在接口192.168.1.10上获得连接,以便在连接到后端时使其源IP为192.168.1.10 . 现在,无论连接是在192.168.1.10还是192.168.1.20上进行,到后端的传出连接都是从192.168.1.10开始的 . 我认为在listen中使用source会实现这一点,但是当我查看netstat -at的输出时,所有与后端的连接都来自1个接口 .

有没有人知道如何确保连接到后端的源IP与原始客户端请求的接口相同?

1 回答

  • 0

    我相信你可以使用 source 作为 server 的参数 .

    backend be1
        ...
        server srv1 domain1.com:80 source ${frontend_ip} check inter 30s
    

    我相信有可能用 %fi 代替 ${frontend_ip} ,您也可以使用 %fp${frontend_port} 来指定端口 . 这样您就可以删除前端中的源语句 .

相关问题