Содержание статьи:
Анекдот в тему...
— У вас сервер выдаёт какие-то ошибки. Сможете помочь?
— Да, мы предпримем какие-то действия.
— Какие действия?
— А какие ошибки?.. 🙂
Всех приветствую.
В этой небольшой заметке решил предложить относительно простой способ, как можно сократить простои в работе своего сайта, когда хостинг уходит на незапланированные тех. работы. Думаю, с предложенной схемой справятся большинство пользователей "средней руки" (хотя, конечно, можно было бы существенно всё усложнить и автоматизировать... но зачем? 🙂).
К делу...
*
Как можно попробовать избежать больших перебоев в работе своего сайта
Для начала стоит сказать, что лучшая опора и надежность вашего сайта — это вы сами! 🙂Никто кроме вас не обеспечит ему бесперебойную работу (даже у самых крупных хостинг-компаний бывают форс-мажоры. Да и работа сайта далеко не всегда зависит от сервера...).
К чему это я...
В очередной раз, когда мой сайт не отвечал и не был доступен неск. часов (из-за проблем у хостинг-компании), — я задумался, какое бы решение выбрать для не коммерческого ресурса, чтобы таких простоев было поменьше... (тем паче, что когда происходит авария — заранее же не знаешь, что всё починят за 2 часа. А если в след. раз авария произойдет более обширная, и сервер не будет доступен 3 дня?..).
Что же, кратко опишу одно из решений на котором остановился сам... и это не поиск самого "лучшего" хостинга... (оно не идеальное, и подойдет оно далеко не всем). Однако, обеспечит вас более спокойной работой...
*
📌 ШАГ 1: запасной «хостинг» (вместо бэкапа)
1) Вероятно, у вас уже есть хотя бы 1 свой сайт и вы оплачиваете услуги хостинга (иначе зачем бы вы стали читать это...? 🙂 От такой ситуации я и буду отталкиваться...).
Суть в том, что нужно заказать услуги у второй хостинг-компании — независимой от первой (и в случае чего - быстро перенаправить посетителей с одного хостинга на другой. Ниже покажу как это можно сделать кратно быстрее, чем за 24-72 часа при классич. смене NS-серверов). Важный момент: крайне желательно, чтобы дата-центры у них были в разных местах.
Чтобы не гадать: идеально, если у одной компании сервера будут в Санкт-Петербурге (например), у другой - в Москве (либо можете заказать даже в разных странах — здесь зависит от нужд и предпочтений).
Далее на этот "запасной" хостинг загружаем копию сайта, базы данных, устанавливаем SSL-сертификат и пр. действия, которые требуются (досконально эти моменты не рассматриваю, т.к. вероятно при наличии сайта - вы представляете как это всё делается для вашей CMS).
📌 Как посмотреть как работает сайт на новом хостинге, без смены NS-серверов у регистратора домена: в Windows есть файл 👉Hosts, который "указывает" браузеру с какого IP загружать сайт (своего рода DNS-хостинг). В него нужно добавить строчку с IP-адресом вашего нового хостинга и доменное имя сайта. См. скрин ниже.
После открываем браузер (в котором нет VPN и пр.) и пробуем загрузить страничку (в моем случае www.ocomp.info). Чтобы было понятно, "какой сайт" загрузился (с основного хостинга или запасного) — можно слегка подредактировать файл, отвечающий за вывод информации в "подвале". См. как реализовано у меня... 👇
Если сайт у вас открылся (и нет ошибок) — значит всё правильно настроено, и можно идти дальше...
*
Чем такой бэкап на отдельном хостинге лучше архива на своем жестком диске:
- во-первых, все файлы на нем (особенно база данных) уже проверены в реальных "боевых" условиях (а "кто его знает", что было запаковано в архив, распакуется ли оно корректно потом?);
- во-вторых, в случае форс-мажора с основным хостингом вам не нужно ничего и нигде искать, извлекать, думать куда загрузить, исправлять ошибки и т.д. По сути, у вас есть сразу же "живая" копия, готовая к работе прямо сейчас (а это гораздо надежнее);
- в-третьих, чтобы задействовать ее — совсем не обязательно иметь под-рукой ПК. Достаточно будет указать IP-адрес запасного сервера (куда загружен ваш сайт) в настройках DNS-хостинга и через 30-60 мин. основная часть посетителей будет перенаправлена на него... (разумеется, для смены IP будет достаточно воспользоваться не только ПК, но и любым телефоном/планшетом с доступом в интернет. Хорошая страховка в отпуске 👌).
Минус: придется платить за услуги второго хостинга + иногда обновлять копию на нем (но многое можно автоматизировать / со временем 🙂). В принципе, в качестве запасного хостинга можно подыскать и какой-нибудь бюджетный вариант...
*
📌 ШАГ 2: облачный DNS-хостинг (настройка A, CNAME)
В принципе, если вы хотите перенаправить посетителей на запасной хостинг (в случае проблем у основного) — достаточно у регистратора домена поменять NS-серверы (большинство так и делает // так проще...).
Однако, такой "способ перенаправления" посетителей слишком долгий (не всегда! Зависит от конкретного случая), и порой отнимает 12-72 часа...
📌 Важно!
Вот почему далеко не всегда желательно регистрировать и домен, и хостинг в одной компании (особенно, если она небольшая). В случае, если у них возникнут проблемы и их сервис будет не доступен — вы не сможете оперативно выгрузить бэкап и поменять NS-серверы (многие пользователи так лишались сайтов, когда из-за проблем у компании они не могли "достать" свои файлы).
*
📌 Однако, есть способ, как можно сделать так, чтобы в случае отказа основного хостинга — примерно за 30-60 мин. основная часть посетителей была бы перенаправлена на "запасной" сервер (т.е. на наш "живой" и готовый к работе бэкап 🙂). Речь идет о так называемом "продвинутом облачном" DNS-хостинге (с инфраструктурой по всему Миру).
*
В чем фишка (как это работает):
- выбираем один из DNS-хостингов (о них чуть ниже). Для демонстрации возьму Cloudflare. Регистрируемся там, и добавляем в личный кабинет свой домен;
- далее у регистратора своего домена мы меняем NS-сервера не на те, что дает нам хостинг-компания, а на спец. от Cloudflare в данном случае (aaron.ns.cloudflare.com и aspen.ns.cloudflare.com // какие NS указать он вам сообщит при добавлении домена);
- далее мы в личном кабинете того же Cloudflare добавляем две записи: "A" и "CNAME". В "A" записи прописываем IP-адрес сервера, на котором расположен сайт, в "CNAME" — ваш домен (т.е. чтобы с www.ocomp.info шла переадресация на ocomp.info); Разумеется, если вы делаете это в первый раз - отработайте механику на тестовом домене/сайте! 👇
- теперь наш сайт будет открываться "через" сервис от Cloudflare!
- что это дает: в случае проблемы у основного хостинга — вы можете зайти в любой момент в личный кабинет Cloudflare (даже с телефона) и поменять IP-сервера основного хостинга на запасной (вероятность одновременной недоступности сайта Cloudflare и вашего хостинга - минимальна). По моим тестам за последнее время — посетители перенаправляются (основная масса) примерно в течении часа. Само собой ущерб при падении хостинга становится меньше... 🙂
- разумеется, при выборе другого DNS-хостинга (👇) вся механика работы строится аналогично...
*
📌 DNS-хостинги, на которые стоит обратить внимание:
- Cloudflare — один из самых популярных и быстрых. Правда он зарубежный и в свете последних событий как бы не случилось что с рос. пользователями... Сервис, кстати, предлагает и много доп. "плюшек": борьбу со спамом, DOS атаками и т.д. (в рамках этой заметки не рассматриваю);
- ClouDNS — еще один зарубежный хостинг с глобальной сетью Anycast DNS (т.е. должен быть отказоустойчив, т.к. идет резервирование NS-узлов и каналов связи). На бесплатном тарифе можно управлять лишь одним доменом (😢). Пользоваться сервисом даже попроще, чем первым - тут есть поддержка русского!
- Hurricane Electric — удобный, надежный, правда тоже иностранный... Позволяет добавить аж 50 доменов (и бесплатно). Доступны все типы записей (с установкой своего TTL // времени обновления);
- 1Cloud — рос. компания, предоставляющая DNS-хостинг бесплатно (есть ЦОДы в России, Казахстане, Белоруссии). Есть возможность подкл. API для управления услугами и много доп. "плюшек" (правда, большая часть из них платны 🙂);
- Selectel — крупная компания, предоставляющая размещение доменов на NS-серверах в Москве, Санкт-Петербурге, Екатеринбурге, Новосибирске, Киеве, Нью-Йорке, и ряде др. городов. Также на их сайте можно заказать множество услуг, связанных с IT;
- REG.ru — для доменов (находящихся под их управлением*) предоставляет свои бесплатные DNS (надо сказать достаточно шустрые и надежные). Примерно 8-10% рос. доменов используют их DNS*;
- DNS хостинг от Яндекс и Mail.ru — всё работает достаточно надежно и быстро. Правда, нельзя добавлять "A" и "CNAME" записи, пока домены не будут делегированы к ним (это не очень удобно). Отлично подходят, если вам нужно использовать почту для домена (корпоративную почту).
*
📌 ШАГ 3: как оперативно узнать, что сайт перестал открываться
Итак...
Допустим мы все подготовили: второй запасной хостинг, аккаунт в Cloudflare (или его аналогах☝️), в телефоне в браузере избранного уже занесены все нужные закладки, IP записаны в блокнот.
Теперь нужно как-то настроить авто-проверку сайта так, чтобы нас вовремя уведомили, что сайт недоступен, не вручную же проверять его постоянно? Я порой на этот блог по неск. дней не захожу, когда в отпуске...
На этот счет мне импонируют два сервиса:
- счетчик Яндекс-метрика — я его поставил первоначально только из-за того, что у них в настройках есть возможность вкл. уведомление при недоступности сайта (причем, и по почте, и по SMS). Т.е. когда "роботы" Яндекса не смогут зайти на сайт — вам придет уведомление, что он недоступен. Удобно?! 🙂
- Ping-admin.com — отличный сервис для контроля за сайтами. Позволяет вручную настроить периодичность авто-проверки доступности сервера (с сайтом), и в случае проблем - известить об этом. Правда, сервис платный, но стоит это не дорого (всего за неск. сотен рублей в год можно заказать себе пинг хоть каждые 5 мин.!). 🙂
*
Дополнение
Разумеется, как только пришло уведомление о недоступности сайта, вам потребуется 2-3 мин. времени (как правило), чтобы оценить "что и где 👀" — если с основным хостингом проблема — можно временно вкл. запасной сервер и спокойно задавать вопросы поддержке...
(в принципе, если у вас на телефоне в браузере уже будут открыты 3-4 вкладки с нужными сервисами и сохраненными паролями — то делается это быстро! Разумеется, подготовить телефон нужно заранее 🙂).
Но можно пойти дальше, и настроить так называемый DNS Failover... 👇
*
ШАГ 4: можно ли автоматически перевести посетителей на запасной хостинг, пока основной не работает
Можно!
Простой вариант сделать это — настроить авто-режим проверки так, что когда "хостинг №1" не работает — IP-адрес его сервера в A-записи (на котором сайт), будет заменен на IP "хостинга №2" (с которым все в порядке).
Есть, конечно, разные варианты осуществления сего, например, я пока тестирую сервис от ClouDNS (не реклама). Чем он хорош:
- все действия по настройке выполняются за 3-5 мин. (всё просто и интуитивно понятно // без программирования);
- он автоматически не только меняет IP, но и уведомляет вас об этом по почте (т.е. получаем 2 в 1!);
- достаточно надежный!
*
Покажу как всё настраивается на простом примере...
1. Для начала нужно зарегистрироваться на ClouDNS и добавить туда свой домен. Это все делается просто и стандартно...
2. Далее нужно добавить DNS записи (по крайней мере A и CNAME записи, которые будут отвечать за то, по какому адресу будет открываться ваш сайт). В A-записи указываем свой основной IP-адрес сервера (∼"хостинг №1"), на котором расположен сайт.
3. В A-записи (напротив указанного IP адреса) есть спец. значок, отвечающий за настройки мониторинга и повышения отказоустойчивости (так называемая опция DNS Failover, которая автоматически заменит основной IP в A-записи на резервный, т.е. на адрес сервера "хостинга №2"). Ее нужно активировать и открыть параметры.
4. Теперь указываем тип мониторинга (можно просто выбрать HTTP), регион мониторинга (например, Европа), свой резервный IP, и условия: что делать, если сайт не доступен по основному IP... (я указал заменить на резервный. А когда станет доступен основной - снова заменить на него).
5. В общем-то, и всё... Осталось только у регистратора домена сайта (для которого мы всё это делали) поменять NS сервера на ClouDNS.
Теперь каждые 1-5 мин. сервис проверяет работает ли сайт, и если нет - автоматически поменяет основной IP на резервный (+ уведомит вас об этом).
*
Иные рекомендации по теме приветствуются!
Успехов!
👋
Зарегил специально домен новый, хочу попробовать. Смущает только, что сервис иностранный и я не до конца понимаю как создавать а-записи.
Я могу сделать как у вас, как понял - брать только первые две строки?
Только IP не забудьте вписать свой.
Спасибо, что не чураетесь освещать такие полезные темы! Узнал для себя много нового.
Стал тестировать ваш метод, и столкнулся с некоторой особенностью. SSL сертификат от Let's Encrypt не ставится на резервный сайт, появляется ошибка. Я по-гуглил, получается, что NS сервера поменять сначала нужно, а потом уже всё остальное.
Тогда способ не очень актуален, т.к. нужно будет не только IP поменять в случае сбоя на основном хостинге, но и сертификат настроить (и подождать пока NS сменятся).
Гхм...
У меня сертификат есть от Sectigo (400 руб. / год), он устанавливается через панельки Cpanеl и Fastpanel без делегирования. Поэтому способ вполне рабочий, по крайней мере, пока... А там поживем-увидим...
Спасибо!
Давно хотел сделать сайт на двух хостингах, но не понимал как быстро поменять Ns'ки. Никакой надежды нет на все проверенные хостинги, постоянно ложатся.
Cloudns быстро переключает?
Смотря что под "переключает" понимать. Мониторить может раз в минуту (это на стандартном тарифе).
Очень все интересно написано, даже не знал, что так можно. Мне как раз такое бы не помешало, а то уже сменил 3 хостинга, а проблема та же...
Только вот по технической части у вас очень мало написано. Я не представляю как сделать полностью вторую копию сайта рабочую на другом хостинге, не отключая первый. И с DNS мало понял - получается, что Клаудфаер будет как бы посредником? А если он сам упадет?
1) Всё может упасть, но надежность его выше, чем у многих бюджетных хостинг-компаний.
2) Насчет копии: хорошо бы самостоятельно научиться ее делать, и разобраться где она у вас, и как ее загрузить на др. хостинг (если, конечно, сайт представляет для вас ценность). А то в час "X" мало ли, и бэкапа резервного не окажется под-рукой...