Как перенаправлять запросы по DNS на второй IP адрес если первый не доступен?
Есть сайт который находится локально в офисе. Это сайт выставлен в интернет. Есть два интернет канала с белыми IP и поддомен ведущий на один из внешних адресов.
Проблема возникает, когда падает первый канал. Для того, что бы клиенты могли также попадать на наш сайт, мы в DNS хостинге в А записи меняем IP адрес на резервный и ждем пока запись везде обновиться.
Хочется найти (если он есть) сервис, который поможет решить проблему таким образом:
Этот сервис выделяет нам IP адрес;
Мы привязываем этот IP адрес к нашей DNS А записи;
В это время сервис мониторит оба наших канала (пинг внешних адресов);
Если все нормально, то он перенаправляет запросы на первый IP адрес;
Если канал 1 падает, то перенаправляет все запросы на второй IP адрес;
Как только первый канал подымается, он начинает снова перенаправлять все запросы на первый канал.
Возможно есть какие то другие решения подобной проблемы. Если таких сервисов нету, может есть какой то софт который данный функционал может реализовать. Будем подымать вм и сами настраивать. Спасибо
Самый простой способ - установить реверсивный прокси. И уже в нем настроить политики отдачи и перенаправления. Это есть и в nginx (см. upstream), и в haproxy (см. use_backend и acl), и в новомодном caddyserver (см. reverse_proxy).
Если нужно проксировать не только http/https, то я бы посмотрел на haproxy внимательней.
dflbrhekbn, Многие клауд-платформы это умеют. Из зарубежных точно - AWS и Cloudware. Из импортозаменителей, кажется точно есть такой функционал у mail.ru cloud (не знаю, как он теперь называется, что-то типа вконтактик в облаках :) )
С другой стороны, установить свой директор (reverse proxy) можно абсолютно на любой платформе, Вариантов я Вам назвал. Дел на час и 5-10 строчек конфига с вдумчивым чтением документации.
Если http/https, посмотрите на caddyserver!
Возможно я плохо смотрел, но все варианты которые я увидел предполагают, что весь трафик между клиентом и нашими сервисами будут проходить через proxy. Я в свою очередь предполагал найти лайтовую версию решения проблемы - не гонять трафик через этот прокси, а просто сообщать клиенту к какому адресу подключаться. То есть, в конечно итоге клиенты подключаются к нам на прямую, по тому адресу по которому им сообщает подключаться сервис
dflbrhekbn, Да, весь трафик будет идти через прокси. И это, по хорошему, самый лучший, надежный, и контролируемый вариант.
Технически, можно делать http-редирект на instance1.mysite.com или instance2.mysite.com.
Но в этом случае все равно нельзя будет контролировать падение конкретного инстанса, ведь с него обратно нельзя будет переключиться, трафик уйдет непосредственно на упавший IP.