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

Внутренний маршрут HAProxy по домену, размещенному на платформе с общим IP-адресом

Я разместил свой домен на платформе хостинга с общим IP. Я настроил HAProxy на Google Compute Engine для маршрутизации трафика. Но когда я попытался получить доступ к IP-адресу сервера HAProxy, я получил страницу по умолчанию для моей платформы общего хостинга (например, страницу по умолчанию CPanel, когда мы пытались получить доступ к сайту через IP-адрес).

Вот дополнительная конфигурация, которую я добавил в конфигурацию HAProxy:

resolvers public-dns
  nameserver dns1 4.4.4.4:53
  nameserver dns2 8.8.8.8:53

frontend http
  bind *:80
  stats uri /haproxy?stats
  default_backend site-backend

backend site-backend
    mode http
    balance roundrobin
    option httpclose
    option forwardfor
    reqadd Host:\ app.domain_name.com
    server mysite app.domain_name.com:80 resolvers public-dns check inter 1000 resolve-prefer ipv4

Как получить правильный веб-сайт с помощью HAProxy?

HAProxy подключается к app.domain_name.com (кстати, не забудьте настроить для этого блок Resolvers, поскольку HAProxy обычно не выполняет повторный поиск разрешения), но отправляет исходный запрос через дословно. Отсутствует заголовок Host, который ваш провайдер использует для различения запросов.

Документация HAProxy описывает использование reqadd конфигурация, чтобы иметь болт HAProxy в заголовке хоста:

reqadd      Host:\ app.domain_name.com

Пожалуйста, также посмотрите раздел резолверов чтобы убедиться, что вы правильно обрабатываете разрешение DNS для app.domain_name.com, иначе оно может неожиданно сломаться, когда провайдер перетасовывает свои IP-адреса.