haproxy:我可以注释IP白名单文件吗?

haproxy:我可以注释IP白名单文件吗?

在我的“/etc/haproxy/haproxy.cfg”文件中,我指定了一个白名单文件,其中包含允许访问前端的 IP 地址。

frontend default-frontend
    <snip>

    tcp-request connection reject if ! { src -f /etc/haproxy/templates/ip-whitelist.txt }

    <snip>

“/etc/haproxy/templates/ip-whitelist.txt”的内容如下:

192.45.21.89/32
123.34.33.7/32
56.23.12.77/32
78.12.66.3/32

这很棒!直到我想清理文件并删除不再需要访问权限的人的 IP。

问题:是否可以在haproxy模板文件中添加注释?

我尝试过这个:

192.45.21.89/32 # Dylan Reeve
123.34.33.7/32 # Jane Doe
56.23.12.77/32 # Priscilla Ahmed
78.12.66.3/32 # Sayed Salas

...返回类似以下内容的错误:

[ALERT] : parsing [/etc/haproxy/haproxy.cfg:123] : 'tcp-request connection reject' :
    error detected in frontend 'default-frontend' while parsing 'if' condition : 
    '192.45.21.89/32 # Dylan Reeve' is not a valid IPv4 or IPv6 address
    at line 1 of file '/etc/haproxy/templates/ip-whitelist.txt'
[ALERT] : Error(s) found in configuration file : /etc/haproxy/haproxy.cfg
[ALERT] : Fatal errors found in configuration.

最糟糕的情况:我必须在另一个位置保留单独的列表以将 IP 与名称进行匹配。

答案1

按照HAProxy v1.8 文档,这应该有效:

# Dylan Reeve
192.45.21.89/32
# Jane Doe
123.34.33.7/32
...

摘自 1.8 文档(我也在 1.6 上做过这个):

“-f”标志后面是文件的名称,该文件中的所有行都将作为单独的值读取。如果要从多个文件加载模式,甚至可以传递多个“-f”参数。空行以及以尖音符号(“#”)开头的行将被忽略。所有前导空格和制表符都将被删除。如果绝对有必要插入以尖音符开头的有效模式,只需在其前面加上空格,这样就不会被当作注释。

或者你可以尝试使用HAProxy 地图我认为这对您的用例来说完全是小菜一碟。

相关内容