Как перенаправить домен в другой домен с помощью HAProxy: несколько методов, объясненных примерами кода

Перенаправление домена — распространенная задача в веб-разработке и администрировании серверов. HAProxy, популярный балансировщик нагрузки и обратный прокси-сервер с открытым исходным кодом, предоставляет несколько методов перенаправления одного домена на другой. В этой статье мы рассмотрим несколько подходов к перенаправлению домена с помощью HAProxy, сопровождая их примерами кода.

Метод 1: перенаправление HTTP с кодами состояния 301 или 302
HAProxy может выполнить простое перенаправление HTTP, отправив соответствующий код состояния (301 для постоянного перенаправления или 302 для временного перенаправления) вместе с новым целевым доменом. Вот пример фрагмента конфигурации:

frontend http-frontend
    bind *:80
    mode http
    redirect prefix https://newdomain.com code 301

Метод 2: переопределение URL-адресов с помощью перенаправления
Переопределение URL-адресов позволяет перенаправлять определенные пути или URL-адреса из одного домена в другой. HAProxy поддерживает перезапись URL-адресов с помощью директивы reqrep. Вот пример:

frontend http-frontend
    bind *:80
    mode http
    reqrep ^([^\ ]*\ /)oldpath/(.*)     \1newpath/\2
    redirect prefix https://newdomain.com code 301 if { path_beg /oldpath }

Метод 3: использование списков ACL для условного перенаправления
Вы можете перенаправлять домены на основе определенных условий, используя списки управления доступом (ACL) в HAProxy. Например, вы можете перенаправить мобильных пользователей в другой домен. Вот пример:

frontend http-frontend
    bind *:80
    mode http
    acl is_mobile hdr_sub(user-agent) -i Mobile
    redirect prefix https://m.newdomain.com code 301 if is_mobile

Метод 4: перенаправление SSL
Если вы хотите перенаправить HTTP-запросы на HTTPS, вы можете использовать HAProxy для выполнения перенаправления SSL. Вот пример фрагмента конфигурации:

frontend http-frontend
    bind *:80
    mode http
    redirect scheme https code 301 if !{ ssl_fc }

В этой статье мы рассмотрели несколько методов перенаправления доменов с помощью HAProxy. Используя мощные функции HAProxy, вы можете реализовать перенаправление HTTP, перезапись URL-адресов, условное перенаправление и перенаправление SSL. Выберите метод, соответствующий вашему конкретному варианту использования, и примените соответствующую конфигурацию для обеспечения плавного перенаправления домена.