使用具有多个IP地址/网络的环境变量配置HAProxy ACL

时间:2019-02-04 18:19:45

标签: haproxy

我知道您可以使用environment variables来配置 HAProxy 。它对我来说只有一个价值。

但是,是否可以使用带有值列表的环境变量?(例如:多个src地址)

例如,在我的haproxy.cfg中:

...
acl acl_gateway_03 src "${ACL_GATEWAY_03_SRC}"
...

ACL_GATEWAY_04_SRC=172.30.4.0/24

但是,如果我设置了一个值列表(即:ACL_GATEWAY_04_SRC=172.30.4.0/24 172.30.6/24),服务器将无法启动并显示此错误消息:

[ALERT] 034/181026 (1) : parsing [/usr/local/etc/haproxy/haproxy.cfg:47] : error detected while parsing ACL 'acl_gateway_04' : '172.30.4.0/24 127.0.0.1' is not a valid IPv4 or IPv6 address.

1 个答案:

答案 0 :(得分:1)

您可以为每个IP地址范围使用一个ACL。

acl acl_gateway_03 src 172.30.4.0/24

或者您可以在crontab中编写命令以在文件中写入ip范围,并在haproxy中使用它们,如下所示:

acl acl_gateway_03 -f file1.lst -i -f file2.lst test
  

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