Доброго времени суток.
Имеется небольшой импровизированный кластер. Состоит он из двух машин.
1) Nginx(frontend),Mysql,ftp-server (так же является роутером и раздает интернет в локальную сеть)
2) Apache(backend)
Оба сервера связаны локальной сетью.
На первом сервере два сетевых интерфейса 1 смотрит в интернет, 2 смотрит в локалку.Вся эта схема работает прекрасно, за исключением того, что с недавнего времени интернет у провайдера стал очень часто отваливаться, да и скорость, то есть то нету...
По этому решил завести второго провайдера. Почитал несколько статей, что можно сделать балансировку нагрузки.
Завел второго провайдера. В итоге: на первом сервер (на роутере) стало 3 сетевых интерфейса.
1) Первый провайдер
2) Второй провайдер
3) Локальная сеть
Сделал оба гейта по умолчанию, с приоритетом 1:1
ip route add default scope global equalize nexthop via $ip1gw dev eth0 weight 1 nexthop via $ip2gw dev eth2 weight 1
Внес записи в днс сервера (своих нету, пользуюсь freedns.ws)
А имено внес 2 записи
A domain_name.ru ip_первого_провайдера
A domain_name.ru ip_второго
В итоге при запросе в браузере domain_name.ru поочерёдно открывается либо по первому провайдеру, либо по второму. На сколько я понимаю так и должно быть, т.к. приоритет в записях A выставить нельзя.
Собственно если отвалится один из провайдеров, 50% сайт будет доступен на сколько я понял?
Задача в следующем, нужно сделать не балансировку нагрузки на провайдеров, а что бы при отказе одного из провайдеров Все запросы шли по другому каналу, как в NAT так и Для веб сервера.
Как это можно реализовать?