我知道您可以使用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.
答案 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”参数。空行以及以尖号('#')开头的行将被忽略。