我有一个路由 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 列表吗?