Рейтинг:1

HaProxy — возможность перенаправлять поддомены и базовый домен на один и тот же сервер

флаг my

Мне нужна помощь с настройкой HaProxy.

В настоящее время у меня есть следующая конфигурация:

интерфейс fe_main_http
  связать :80
  reqadd X-Forwarded-Proto:\ http
  use_backend %[req.hdr(хост),нижний]

интерфейс fe_main_https
    привязать 0.0.0.0:443 ssl crt /etc/haproxy/certs/ no-sslv3 no-tls-tickets
    reqadd X-Forwarded-Proto:\ https
    use_backend %[req.hdr(хост),нижний]


серверная часть test1.domain.com
    схема редиректа https if !{ ssl_fc }
    сервер s1 1.2.3.4:80 проверить

...

Это означает, что любое доменное имя будет перенаправлено на серверную часть с соответствующим именем. (Например: пример.com к серверная часть example.com)

Дело в том, что я хочу, чтобы он был настроен и для поддоменов этих доменов. В основном говоря, любой субдомен базового домена (например, test.example.com или же *.example.com) и сам базовый домен (например. пример.com) должен указывать на тот же бэкэнд (например. серверная часть example.com).

Я слышал, что это можно сделать с помощью регулярных выражений; однако мне не повезло с настройкой этой штуки. :(

Может быть, кто-то сталкивался с подобным и сможет помочь мне в этом?

Заранее спасибо!

Рейтинг:1
флаг cz

Вам действительно не нужно регулярное выражение (и помните, что оно дорогое), но вам нужно указать доменное имя.

Учти это:

        use_backend example.com, если { req.hdr(host) -i example.com }

Теперь сопоставьте все субдомены с -м конец:

        use_backend example.com if { req.hdr(host) -i -m end .example.com }
Rodion Grinberg avatar
флаг my
Да, но дело в том, что я хочу использовать это с несколькими доменами, и создание большего количества «use_backend» загромодит конфигурацию. Есть ли более чистое решение?
Michael Hampton avatar
флаг cz
@RodionGrinberg А создание дополнительных «бэкэндов» не будет загромождать конфигурацию?
Rodion Grinberg avatar
флаг my
Хорошо, это будет; но не столько, сколько дополнительная настройка фронтенда и бэкенда. Я добавляю новый бэкэнд с помощью скрипта bash, поэтому, если возможно, можно ли изменить текущую конфигурацию?
Michael Hampton avatar
флаг cz
Что ж, тогда вы также можете добавить `use_backend` с помощью скрипта!

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.