HAProxy 使用文件中的主机设置 acl

HAProxy 使用文件中的主机设置 acl

我想将 100 多个网站从一台服务器迁移到另一台服务器。目前的计划是逐步为每个网站添加一个 acl,以便将流量引导到新服务器。

这是一个简化的例子

front http_frontend
  bind *:80
  acl is_new hdr_end(host) -i sub1.domain.com
  acl is_new hdr_end(host) -i sub2.domain.com
  acl is_new hdr_end(host) -i www.domain2.com
  mode http
  # etc
  use_backend web1 if is_new
  default_backend legacy1

一旦它们全部移动,我们就会改变default_backend

有没有办法从另一个文件读取这些 acl?或者从文件读取域 - 也许像这样?

acl is_new hdr_end(host) -i /path/to/file

例如,我包含如下所示的所有安全证书,这样的内容就很棒了!

bind *:443 ssl crt /etc/haproxy/certs.d

如果没有的话,那也不是世界末日,只是会很整洁:)。

答案1

haproxy 中的 ACL 可以接受-f参数从文件中加载值。您可以在此处阅读文档

例如:

acl valid-ua hdr(user-agent) -f exact-ua.lst -i -f generic-ua.lst test

“-f”标志后面是文件的名称,该文件中的所有行都将作为单独的值读取。如果要从多个文件加载模式,甚至可以传递多个“-f”参数。空行以及以尖锐符号(“#”)开头的行将被忽略。

相关内容