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

joe*_*der 7 haproxy

我想将大约 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
Run Code Online (Sandbox Code Playgroud)

一旦他们都被感动了,我们就会改变 default_backend

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

acl is_new hdr_end(host) -i /path/to/file
Run Code Online (Sandbox Code Playgroud)

例如,我将所有安全证书包括在下面,这样的东西会很棒!

bind *:443 ssl crt /etc/haproxy/certs.d
Run Code Online (Sandbox Code Playgroud)

如果没有,这不是世界末日,它只是美好而整洁:)。

Kyl*_*ndt 8

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

例如:

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

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