Назад | Перейти на главную страницу

HAProxy устанавливает acl с хостами из файла

Я хотел бы перенести около 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», если шаблоны должны быть загружены из нескольких файлов. Пустые строки, а также строки, начинающиеся с символа «#», будут игнорироваться.