Как разместить сайт на 2-х хостингах и перенаправлять посетителей на тот, который в данный момент работает

Опубликовал: Alexandr на , 14.06.2022

Анекдот в тему...

— У вас сервер выдаёт какие-то ошибки. Сможете помочь?

— Да, мы предпримем какие-то действия.

— Какие действия?

— А какие ошибки?.. 🙂

 

Всех приветствую.

В этой небольшой заметке решил предложить относительно простой способ, как можно сократить простои в работе своего сайта, когда хостинг уходит на незапланированные тех. работы. Думаю, с предложенной схемой справятся большинство пользователей "средней руки" (хотя, конечно, можно было бы существенно всё усложнить и автоматизировать... но зачем? 🙂).

К делу...

 

*

Как можно попробовать избежать больших перебоев в работе своего сайта

Для начала стоит сказать, что лучшая опора и надежность вашего сайта — это вы сами! 🙂Никто кроме вас не обеспечит ему бесперебойную работу (даже у самых крупных хостинг-компаний бывают форс-мажоры. Да и работа сайта далеко не всегда зависит от сервера...).

К чему это я...

В очередной раз, когда мой сайт не отвечал и не был доступен неск. часов (из-за проблем у хостинг-компании),  — я задумался, какое бы решение выбрать для не коммерческого ресурса, чтобы таких простоев было поменьше... (тем паче, что когда происходит авария — заранее же не знаешь, что всё починят за 2 часа. А если в след. раз авария произойдет более обширная, и сервер не будет доступен 3 дня?..).

Что же, кратко опишу одно из решений на котором остановился сам... и это не поиск самого "лучшего" хостинга... (оно не идеальное, и подойдет оно далеко не всем). Однако, обеспечит вас более спокойной работой...

 

*

📌 ШАГ 1: запасной «хостинг» (вместо бэкапа)

1) Вероятно, у вас уже есть хотя бы 1 свой сайт и вы оплачиваете услуги хостинга (иначе зачем бы вы стали читать это...? 🙂 От такой ситуации я и буду отталкиваться...).

Суть в том, что нужно заказать услуги у второй хостинг-компании — независимой от первой (и в случае чего - быстро перенаправить посетителей с одного хостинга на другой. Ниже покажу как это можно сделать кратно быстрее, чем за 24-72 часа при классич. смене NS-серверов). Важный момент: крайне желательно, чтобы дата-центры у них были в разных местах.

Чтобы не гадать: идеально, если у одной компании сервера будут в Санкт-Петербурге (например), у другой - в Москве (либо можете заказать даже в разных странах — здесь зависит от нужд и предпочтений).

Далее на этот "запасной" хостинг загружаем копию сайта, базы данных, устанавливаем SSL-сертификат и пр. действия, которые требуются (досконально эти моменты не рассматриваю, т.к. вероятно при наличии сайта - вы представляете как это всё делается для вашей CMS).

📌 Как посмотреть как работает сайт на новом хостинге, без смены NS-серверов у регистратора домена: в Windows есть файл 👉Hosts, который "указывает" браузеру с какого IP загружать сайт (своего рода DNS-хостинг). В него нужно добавить строчку с IP-адресом вашего нового хостинга и доменное имя сайта. См. скрин ниже.

Указываем IP адрес сервера, на котором расположен сайт

Указываем IP адрес сервера, на котором расположен сайт (прим.: строка со значком "#" - просто комментарий, и она никак не влияет на работу)

 

После открываем браузер (в котором нет VPN и пр.) и пробуем загрузить страничку (в моем случае www.ocomp.info). Чтобы было понятно, "какой сайт" загрузился (с основного хостинга или запасного) — можно слегка подредактировать файл, отвечающий за вывод информации в "подвале". См. как реализовано у меня... 👇

Хостинг в 'подвале' веб-страницы

Хостинг в "подвале" веб-страницы

 

Если сайт у вас открылся (и нет ошибок) — значит всё правильно настроено, и можно идти дальше...

*

Чем такой бэкап на отдельном хостинге лучше архива на своем жестком диске:

  • во-первых, все файлы на нем (особенно база данных) уже проверены в реальных "боевых" условиях (а "кто его знает", что было запаковано в архив, распакуется ли оно корректно потом?);
  • во-вторых, в случае форс-мажора с основным хостингом вам не нужно ничего и нигде искать, извлекать, думать куда загрузить, исправлять ошибки и т.д. По сути, у вас есть сразу же "живая" копия, готовая к работе прямо сейчас (а это гораздо надежнее);
  • в-третьих, чтобы задействовать ее — совсем не обязательно иметь под-рукой ПК. Достаточно будет указать IP-адрес запасного сервера (куда загружен ваш сайт) в настройках DNS-хостинга и через 30-60 мин. основная часть посетителей будет перенаправлена на него... (разумеется, для смены IP будет достаточно воспользоваться не только ПК, но и любым телефоном/планшетом с доступом в интернет. Хорошая страховка в отпуске 👌).

Минус: придется платить за услуги второго хостинга + иногда обновлять копию на нем (но многое можно автоматизировать / со временем 🙂). В принципе, в качестве запасного хостинга можно подыскать и какой-нибудь бюджетный вариант...

 

 

*

📌 ШАГ 2: облачный DNS-хостинг (настройка A, CNAME)

В принципе, если вы хотите перенаправить посетителей на запасной хостинг (в случае проблем у основного) — достаточно у регистратора домена поменять NS-серверы (большинство так и делает // так проще...).

Однако, такой "способ перенаправления" посетителей слишком долгий (не всегда! Зависит от конкретного случая), и порой отнимает 12-72 часа...

📌 Важно!

Вот почему далеко не всегда желательно регистрировать и домен, и хостинг в одной компании (особенно, если она небольшая). В случае, если у них возникнут проблемы и их сервис будет не доступен — вы не сможете оперативно выгрузить бэкап и поменять NS-серверы (многие пользователи так лишались сайтов, когда из-за проблем у компании они не могли "достать" свои файлы).

*

📌 Однако, есть способ, как можно сделать так, чтобы в случае отказа основного хостинга — примерно за 30-60 мин. основная часть посетителей была бы перенаправлена на "запасной" сервер (т.е. на наш "живой" и готовый к работе бэкап 🙂). Речь идет о так называемом "продвинутом облачном" DNS-хостинге (с инфраструктурой по всему Миру).

*

В чем фишка (как это работает):

 

*

📌 DNS-хостинги, на которые стоит обратить внимание:

  1. Cloudflare — один из самых популярных и быстрых. Правда он зарубежный и в свете последних событий как бы не случилось что с рос. пользователями... Сервис, кстати, предлагает и много доп. "плюшек": борьбу со спамом, DOS атаками и т.д. (в рамках этой заметки не рассматриваю);
    Скриншот с сайта Cloudfare

    Скриншот с сайта Cloudflare

     

  2. ClouDNS — еще один зарубежный хостинг с глобальной сетью Anycast DNS (т.е. должен быть отказоустойчив, т.к. идет резервирование NS-узлов и каналов связи). На бесплатном тарифе можно управлять лишь одним доменом (😢). Пользоваться сервисом даже попроще, чем первым - тут есть поддержка русского!
    Скриншот с сайта ClouDNS

    Скриншот с сайта ClouDNS

     

  3. Hurricane Electric — удобный, надежный, правда тоже иностранный... Позволяет добавить аж 50 доменов (и бесплатно). Доступны все типы записей (с установкой своего TTL // времени обновления);
    Hurricane Electric Free DNS Management

    Hurricane Electric Free DNS Management

     

  4. 1Cloud — рос. компания, предоставляющая DNS-хостинг бесплатно (есть ЦОДы в России, Казахстане, Белоруссии). Есть возможность подкл. API для управления услугами и много доп. "плюшек" (правда, большая часть из них платны 🙂);
    Скриншот с описанием услуги с сcqnf 1Cloud

    Скриншот с описанием услуги с сайта 1Cloud

     

     

  5. Selectel — крупная компания, предоставляющая размещение доменов на NS-серверах в Москве, Санкт-Петербурге, Екатеринбурге, Новосибирске, Киеве, Нью-Йорке, и ряде др. городов. Также на их сайте можно заказать множество услуг, связанных с IT;
  6. REG.ru — для доменов (находящихся под их управлением*) предоставляет свои бесплатные DNS (надо сказать достаточно шустрые и надежные). Примерно 8-10% рос. доменов используют их DNS*;
    Reg.ru — скрин из личного кабинета управлением домена

    Reg.ru — скрин из личного кабинета управлением домена

     

  7. DNS хостинг от Яндекс и Mail.ru — всё работает достаточно надежно и быстро. Правда, нельзя добавлять "A" и "CNAME" записи, пока домены не будут делегированы к ним (это не очень удобно). Отлично подходят, если вам нужно использовать почту для домена (корпоративную почту).

 

 

*

📌 ШАГ 3: как оперативно узнать, что сайт перестал открываться

Итак...

Допустим мы все подготовили: второй запасной хостинг, аккаунт в Cloudflare (или его аналогах☝️), в телефоне в браузере избранного уже занесены все нужные закладки, IP записаны в блокнот.

Теперь нужно как-то настроить авто-проверку сайта так, чтобы нас вовремя уведомили, что сайт недоступен, не вручную же проверять его постоянно? Я порой на этот блог по неск. дней не захожу, когда в отпуске...

На этот счет мне импонируют два сервиса:

  1. счетчик Яндекс-метрика — я его поставил первоначально только из-за того, что у них в настройках есть возможность вкл. уведомление при недоступности сайта (причем, и по почте, и по SMS). Т.е. когда "роботы" Яндекса не смогут зайти на сайт — вам придет уведомление, что он недоступен. Удобно?! 🙂
    Уведомления - Яндекс-метрика

    Уведомления - Яндекс-метрика

     

  2. Ping-admin.com — отличный сервис для контроля за сайтами. Позволяет вручную настроить периодичность авто-проверки доступности сервера (с сайтом), и в случае проблем - известить об этом. Правда, сервис платный, но стоит это не дорого (всего за неск. сотен рублей в год можно заказать себе пинг хоть каждые 5 мин.!). 🙂

    Пинг-админ - пример настройки

    Пинг-админ: пример настройки проверки сайта

 

*

Дополнение 

Разумеется, как только пришло уведомление о недоступности сайта, вам потребуется 2-3 мин. времени (как правило), чтобы оценить "что и где 👀" — если с основным хостингом проблема — можно временно вкл. запасной сервер и спокойно задавать вопросы поддержке...

(в принципе, если у вас на телефоне в браузере уже будут открыты 3-4 вкладки с нужными сервисами и сохраненными паролями — то делается это быстро! Разумеется, подготовить телефон нужно заранее 🙂).

Но можно пойти дальше, и настроить так называемый DNS Failover... 👇

 

 

*

ШАГ 4: можно ли автоматически перевести посетителей на запасной хостинг, пока основной не работает

Можно!

Простой вариант сделать это — настроить авто-режим проверки так, что когда "хостинг №1" не работает — IP-адрес его сервера в A-записи (на котором сайт), будет заменен на IP "хостинга №2" (с которым все в порядке).

Есть, конечно, разные варианты осуществления сего, например, я пока тестирую сервис от ClouDNS (не реклама). Чем он хорош:

  1. все действия по настройке выполняются за 3-5 мин. (всё просто и интуитивно понятно // без программирования);
  2. он автоматически не только меняет IP, но и уведомляет вас об этом по почте (т.е. получаем 2 в 1!);
  3. достаточно надежный!

*

Покажу как всё настраивается на простом примере...

1. Для начала нужно зарегистрироваться на ClouDNS и добавить туда свой домен. Это все делается просто и стандартно...

2. Далее нужно добавить DNS записи (по крайней мере A и CNAME записи, которые будут отвечать за то, по какому адресу будет открываться ваш сайт). В A-записи указываем свой основной IP-адрес сервера (∼"хостинг №1"), на котором расположен сайт.

3. В A-записи (напротив указанного IP адреса) есть спец. значок, отвечающий за настройки мониторинга и повышения отказоустойчивости (так называемая опция DNS Failover, которая автоматически заменит основной IP в A-записи на резервный, т.е. на адрес сервера "хостинга №2"). Ее нужно активировать и открыть параметры.

img-Cloudns-lichnyiy-kabinet-sozdaem-A-zapis-i-vklyuchaem-monitoring-otkazoustoychivosti.png

Скриншот. ClouDNS - личный кабинет, создаем A-запись и включаем мониторинг отказоустойчивости

 

4. Теперь указываем тип мониторинга (можно просто выбрать HTTP), регион мониторинга (например, Европа), свой резервный IP, и условия: что делать, если сайт не доступен по основному IP... (я указал заменить на резервный. А когда станет доступен основной - снова заменить на него).

img-Monitoring-1-5-min.-esli-osnovnoy-IP-ne-dostupen-zamenit-ego-na-rezervnyiy-i-uvedomit-po-pochte.png

Скриншот. Мониторинг 1-5 мин., если основной IP не доступен - заменить его на резервный (и уведомить по почте)

 

5. В общем-то, и всё... Осталось только у регистратора домена сайта (для которого мы всё это делали) поменять NS сервера на ClouDNS.

Теперь каждые 1-5 мин. сервис проверяет работает ли сайт, и если нет - автоматически поменяет основной IP на резервный (+ уведомит вас об этом).

img-Istoriya-monitoringa.png

Скриншот. История мониторинга. ClouDNS

 

*

Иные рекомендации по теме приветствуются!

Успехов!

👋

8 комментариев

  1. Алексей:

    Зарегил специально домен новый, хочу попробовать. Смущает только, что сервис иностранный и я не до конца понимаю как создавать а-записи.
    Я могу сделать как у вас, как понял - брать только первые две строки?

    1. Alexandr:

      Только IP не забудьте вписать свой.

  2. Алексей:

    Спасибо, что не чураетесь освещать такие полезные темы! Узнал для себя много нового.

    Стал тестировать ваш метод, и столкнулся с некоторой особенностью. SSL сертификат от Let's Encrypt не ставится на резервный сайт, появляется ошибка. Я по-гуглил, получается, что NS сервера поменять сначала нужно, а потом уже всё остальное.

    Тогда способ не очень актуален, т.к. нужно будет не только IP поменять в случае сбоя на основном хостинге, но и сертификат настроить (и подождать пока NS сменятся).

    1. Alexandr:

      Гхм...
      У меня сертификат есть от Sectigo (400 руб. / год), он устанавливается через панельки Cpanеl и Fastpanel без делегирования. Поэтому способ вполне рабочий, по крайней мере, пока... А там поживем-увидим...

  3. Камелот:

    Спасибо!
    Давно хотел сделать сайт на двух хостингах, но не понимал как быстро поменять Ns'ки. Никакой надежды нет на все проверенные хостинги, постоянно ложатся.
    Cloudns быстро переключает?

    1. Alexandr:

      Смотря что под "переключает" понимать. Мониторить может раз в минуту (это на стандартном тарифе).

  4. Александр:

    Очень все интересно написано, даже не знал, что так можно. Мне как раз такое бы не помешало, а то уже сменил 3 хостинга, а проблема та же...
    Только вот по технической части у вас очень мало написано. Я не представляю как сделать полностью вторую копию сайта рабочую на другом хостинге, не отключая первый. И с DNS мало понял - получается, что Клаудфаер будет как бы посредником? А если он сам упадет?

    1. Alexandr:

      1) Всё может упасть, но надежность его выше, чем у многих бюджетных хостинг-компаний.
      2) Насчет копии: хорошо бы самостоятельно научиться ее делать, и разобраться где она у вас, и как ее загрузить на др. хостинг (если, конечно, сайт представляет для вас ценность). А то в час "X" мало ли, и бэкапа резервного не окажется под-рукой...

Написать комментарий 📎

 

Прикрепить картинку, скрин:

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

  • Содержание статьи
  •