В моем файле "/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-адреса с именами.
Согласно Документация HAProxy v1.8, это должно работать:
# Dylan Reeve
192.45.21.89/32
# Jane Doe
123.34.33.7/32
...
Взято из документации 1.8 (я делал это и на 1.6):
За флагом «-f» следует имя файла, из которого все строки будут считаны как отдельные значения. Можно даже передать несколько аргументов «-f», если шаблоны должны быть загружены из нескольких файлов. Пустые строки, а также строки, начинающиеся с символа «#», будут игнорироваться. Все начальные пробелы и табуляции будут удалены. Если абсолютно необходимо вставить действительный образец, начинающийся с диеза, просто поставьте перед ним пробел, чтобы он не принимался за комментарий.
Или вы можете попробовать использовать Карты HAProxy которые я считаю полным излишеством для вашего варианта использования.