Задать вопрос
@Footer_pro

Как маршрутизировать uri в haproxy?

Привет всем!
Подскажите, каким образом в haproxy 2.6 можно маршрутизировать трафик на доменные имена? Дано:

auth.domain.ru
auth-dev.domain.ru
auth-stage.domain.ru

У всех доменов одинаковый uri /test/* и соответственно необходимо проксировать на разные сервера,
понятное дело что через path_beg, но как сделать его на 3 разных домена?

если я делаю

backend backend-front-dev
http-request replace-path /front(/)?(.*) /\2
server dev-swarm-01 dev-swarm-01:3031 check maxconn 30
и
backend backend-front-stage
http-request replace-path /front(/)?(.*) /\2
server stage-swarm-01 stage-swarm-01:3031 check maxconn 30

То применяется верхнее правило backend-front-dev

Заранее спасибо!
  • Вопрос задан
  • 510 просмотров
Подписаться 1 Средний Комментировать
Решения вопроса 1
@Footer_pro Автор вопроса
Коллеги, может кому пригодится
данный конфиг позволяет заходит на сайты auth.domain.com, auth-dev.domain.com, auth-stage.domain.com и еще по пути /test , этих доменов.

acl is_auth hdr_end(host) -i auth.domain.com
acl is_auth_dev hdr_end(host) -i auth-dev.domain.com
acl is_auth_stage hdr_end(host) -i auth-stage.domain.com

acl test_path path_beg -i /test

use_backend backend-front-dev if is_auth_dev test_path
use_backend backend-front-stage if is_auth_stage test_path
use_backend backend-front-auth if is_auth test_path

use_backend auth if is_auth
use_backend auth_dev if is_auth_dev
use_backend auth_stage if is_auth_stage

Правила должны идти по смыслу как в фаерволлах, что выше то и срабатывает, как то так.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@d-stream
Готовые решения - не подаю, но...
а в чем проблема-то?
на фронтенде
use_backend back1 if {hdr(host) -i hos1.ru}
use_backend back2 if {hdr(host) -i hos2.ru}
...

и нужное число бэкэндов
Ответ написан
@yellowmew
Cloud infrastructure, monitoring engineer. SRE
распределение реквестов по разным бэкендам делается во фронтенд секции (директива use_backend ), вы нам ее не показали. Скорее всего проблема где-то там.
Для большего понимания работы ACL прочитайте секцию https://docs.haproxy.org/2.6/configuration.html#7.2 документации HAProxy
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы