Сначала я бы порекомендовал, чтобы у вас была настроенная и / или промежуточная среда для тестирования любых изменений перед их внесением.
Для перенаправления 301 всех траффиков c, поступающих с 123.domain. com на api.domain.com вы можете использовать следующее
http-request redirect prefix http://api.domain.com code 301 if { hdr(host) -i 123.domain.com }
Если вы хотите, чтобы HAProxy подключался к бэкенду api.domain.com от имени пользователя и маскировал имя хоста, вы бы добавили бэкэнд для api.domain.com, а затем создайте правило use_backend
. Имейте в виду, что с помощью нижеприведенного перенаправления 301/302 не выполняются, вместо этого HAProxy устанавливает соединение от имени клиента.
Примерно так будет работать:
use_backend api.domain.com if { hdr(host) -i 123.domain.com }
Тогда в пределах На сервере api.domain.com вы можете обновить заголовок хоста.
backend api.domain.com
http-request set-header Host api.domain.com
server api1 api.domain.com:80 check