Я хотел бы перенести около 100+ сайтов с одного сервера на другой. Текущий план состоит в том, чтобы постепенно добавлять ACL для каждого из них, поскольку они перемещаются для прямого трафика на новый сервер.
Вот упрощенный пример
front http_frontend
bind *:80
acl is_new hdr_end(host) -i sub1.domain.com
acl is_new hdr_end(host) -i sub2.domain.com
acl is_new hdr_end(host) -i www.domain2.com
mode http
# etc
use_backend web1 if is_new
default_backend legacy1
Как только все они будут перемещены, мы изменим default_backend
Есть ли способ прочитать эти ACL из другого файла? Или читать домены из файла - что-то вроде этого?
acl is_new hdr_end(host) -i /path/to/file
Например, я включаю все сертификаты безопасности, как показано ниже, что-то вроде этого было бы здорово!
bind *:443 ssl crt /etc/haproxy/certs.d
Если нет, то это не конец света, просто было бы красиво и аккуратно :).
ACL в haproxy могут принимать -f
аргумент для загрузки значений из файла. Вы можете прочитать документацию здесь.
Например:
acl valid-ua hdr(user-agent) -f exact-ua.lst -i -f generic-ua.lst test
За флагом «-f» следует имя файла, из которого все строки будут считаны как отдельные значения. Можно даже передать несколько аргументов «-f», если шаблоны должны быть загружены из нескольких файлов. Пустые строки, а также строки, начинающиеся с символа «#», будут игнорироваться.