haproxy 如何通过 acl 传递仅需要重定向到后端的 ip 和域列表

haproxy 如何通过 acl 传递仅需要重定向到后端的 ip 和域列表

我有一个路由 IP,haproxy 就在那里,haproxy 也有 lan ip 来联系后端。我有几个后端 - 每个都包含一些 nginx,有时每个后端上有几个域服务。现在我想将访问范围缩小到某个列表 - 我的 lan + 一些其他 ip。我正在执行 SSL 终止,但据我所知这并不重要。我的配置中的基本部分:

frontend https-in
    bind *:443 ssl crt /etc/haproxyssl/domain1.pem crt /etc/haproxyssl/domain2.pem
    reqadd X-Forwarded-Proto:\ https
    acl host_1 hdr(host) -i add.domain1.net
    acl host_1 hdr(host) -i sub.domain1.net
    acl host_2 hdr(host) -i pro.domain2.net
    use_backend worker_1 if host_1
    use_backend worker_2 if host_2
    default_backend worker_2

backend worker_2
    redirect scheme https if !{ ssl_fc }
    balance leastconn
    option forwardfor
    cookie JSESSIONID prefix
    option http-server-close
    acl 2_list src 127.0.0.1 172.18.0.1/24 10.1.2.0/24
    tcp-request content accept if 2_list
    tcp-request content reject
    server dodo 10.1.2.65:80 cookie A check

当然acl 2_list不行,因为代理处于 http 模式 - 后端看到的是 haproxy ip,而不是客户端 - 我对此没意见 - 我不需要后端的源 ip。我不想制作 tproxy 解决方案。HaProxy 在 Gentoo 上是 v1.5.4。

问题:我可以在前端为每个域/后端提供 acl 列表吗?

相关内容