@kondratev-ad

Как сделать отказоустойчивый кластер nginx в разных ЦОД-ах?

Допустим, есть два сервера у разных провайдеров:
  1. 151.228.111.101 - server 1
  2. 89.107.73.31 - server 2

Нужно развернуть отказоустойчивый кластер nginx, который будет работать под одним hostname.
Начал читать про keepalived, но я так понял, что он работает только когда сервера находятся в одной общей сети.
Подскажите, где почитать, куда копать?
  • Вопрос задан
  • 528 просмотров
Пригласить эксперта
Ответы на вопрос 5
Sanes
@Sanes
Если IP адрес закешировался в моём браузере, то он будет стучаться именно в него. Как вы это решите?
Допустим это будет точкой входа. А если она откажет?
Ответ написан
Комментировать
Melkij
@Melkij
PostgreSQL DBA
Дёшево - это через DNS. В комплекте приключения, на которые вы в принципе не сможете повлиять - как надолго кэшируются ответы DNS даже в нарушении заданного TTL.

Правильно - это BGP с анонсом своего IP. Вопрос очень далеко не SOHO сегмента.

Посередине - договориться с кем-то третьим, кто возьмётся представляться вашей точкой входа, сможет гарантировать время переключения с одного сервера на запасной (в отличии от любых DNS), а доступностью своего адреса занимается сам. Cloudflare, например, из известных.
Ответ написан
Комментировать
@Drno
направь DNS запись на оба внешних адреса
Ответ написан
Комментировать
SignFinder
@SignFinder
Wintel\Unix Engineer\DevOps
2 варианта:
1. Используя балансировщик\reverse proxy в третьем месте, например облаке.
2. Используя демон, например тот же keepalived, который будет переключать DNS записи между нодами nginx с очень маленьким TTL в зависимости от условий.

Почитать и копать в гугле по запросу nginx HA
Ответ написан
@vitaly_il1
DevOps Consulting
Посмотрите мой ответ https://qna.habr.com/q/760831#answer_1607711.
В целом есть два случая - если сайт статический, то все относительно просто, а если динамический (точнее есть база данных) - то все очень сложно.
И, как я писал, старайтесь использовать managed services, а то надежность может понизиться.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы