haproxy ACL - 如何根据目标端口或地址路由流量

haproxy ACL - 如何根据目标端口或地址路由流量

客户端 ( ) 上的应用程序192.168.1.106正在尝试访问服务192.168.1.10:8080。此请求的日志条目如下。我想配置 haproxy 以将该请求直接发送到 ,192.168.1.10:8080而不是使用backend privoxy-back

我几乎确定我需要向 haproxy 配置添加 ACL,但我发现文档对于这个特定问题来说太过详尽。下面的一些 StackExchange 帖子很接近,但它们并不是我想要的。

你能帮助我理解这里必须做什么吗?

Feb  9 07:21:24 localhost.localdomain haproxy[21851]: 192.168.1.106:49326 
[09/Feb/2018:07:21:24.199] privoxy-front privoxy-back/proxy02 89/0/0/-1/91 -1 
132 - - SD-- 129/129/129/128/0 0/0 "GET http://192.168.1.10:8080/ HTTP/1.1"

frontend privoxy-front
 bind :8118
 mode http
 default_backend privoxy-back

backend privoxy-back
 mode http
 option forwardfor
 server proxy01 192.168.20.62:8118 check backup
 server proxy02 192.168.25.72:8118 check

这些是我已经检查过并且没有起作用的帖子。

答案1

如果您希望 HAProxy 处理您的请求,您需要有前端和后端。据我所知,您需要有后端,并且不能忽略它。为什么您不想使用后端?我不明白这会给您带来什么问题。无论如何,您可以像这样处理它:

  1. 配置运行所需端口的前端
  2. 配置一个后端,该后端已配置了要代理的实际服务器
  3. 将创建的前端链接到后端

因此您的配置几乎正确。假设以下

  1. 客户端 IP 是 192.168.1.106
  2. 客户端连接的应用服务器 IP 为 192.168.1.10,端口为 8080
  3. 实际应用服务器(无论您要代理到哪个应用程序)的 IP 和端口是 192.168.20.62:8118 和 192.168.25.72:8118

您的配置应如下所示,并且您的 HAProxy 应在 192.168.1.10 上运行:

frontend privoxy-front
 bind :8080
 mode http
 default_backend privoxy-back

backend privoxy-back
 mode http
 option forwardfor
 server applicationServer1 192.168.20.62:8118 check
 server applicationServer2 192.168.25.72:8118 check

我删除了它,backup因为这意味着如果所有其他服务器都瘫痪了,流量只会路由到该服务器。

相关内容