在我的“/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 地图我认为这对您的用例来说完全是小菜一碟。