Вживання російської мови може призвести до катастрофічних наслідків, радимо переходити на українську.

Переезд сайта с сервера на сервер и бесшовная миграция

  1. Главная
  2. Блог
  3. Техподдержка
  4. Переезд сайта с сервера на сервер и бесшовная миграция
Категории
Переїзд сайту із сервера на сервер та безшовна міграція

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

Что такое переезд сайта

Переезд с хостинга на хостинг — это перенос сайта с одной хостинговой площадки (виртуальной или физической машины) на другую хостинговую площадку (т.е. на другую инфраструктуру). Вследствие переезда у сайта поменяются:

  • среда выполнения;
  • IP-адрес сервера, с которым взаимодействуют пользователи.

Миграция — процесс трудоёмкий и кропотливый, поэтому требует знаний и специальной подготовки. Нередко при переносе могут возникнуть сложности, одна из которых — перенести сайт таким образом, чтобы не было простоя и потери транзакций.

Варианты миграции

Всего существуют 3 варианта миграции сайтов. Рассмотрим их подробнее:

1. Первый способ, при котором владелец сайта объявляет downtime. Другими словами, он ставит «заглушку» на сайт с уведомлением о технических работах. Во время переноса пользователи не смогут пользоваться вашим сайтом и делать заказы. 

2. Другой вариант миграции мы называем «расщеплением». При таком способе разворачивается копия сайта на нашем сервере, тестируется, а затем изменяются настройки DNS. В связи с особенностями работы DNS-серверов, информация о внесённых изменениях в настройки распространяется в сети не одномоментно, поэтому часть пользователей, у которых уже произошло обновление информации об изменениях, при переходе попадает на новый сайт, а часть посетителей, у которых не обновились данные, — на старый. 

Получается, что одновременно существует две версии одного и того же сайта, которые находятся на разных серверах. При использовании такого способа миграции существует вероятность потерять заказы, которые клиенты оформили во время переноса на старой копии сайта. 

3. Вариант, который предпочитаем мы при переносе с одного сервера на другой, — бесшовная миграция. Способ реализации зависит от нескольких параметров, которые учитываются при переносе, а именно:

  • откуда и куда переносится сайт;
  • как именно будет изменена доменная зона (потребуется только сменить А-записи, указывающие на то, где будет работать сайт, или же будет полная смена NS-серверов, которые указывают, куда следует обращаться браузеру за А или MX-записями);
  • специфики работы конкретного сайта.

Рассмотрим способ бесшовного переноса сайта с сервера на сервер поэтапно и более подробно.

Этап подготовки бесшовного переезда с сервера на сервер

Приступим к первичному этапу переезда — подготовке. Для бесшовной миграции потребуется подготовить среды как со стороны, откуда забирается сайт, так и со стороны, куда мы его переносим. Именно на этом этапе и определяется, что необходимо подготовить, чтобы провести миграцию с минимальными потерями. 

Прежде всего, следует уточнить, на какие NS-серверы делегирована доменная зона вашего сайта. Если они принадлежат регистратору доменного имени, то при переносе сайта потребуется сменить лишь записи доменной зоны, которые отвечают за корректную работу сайта. Обычно управление настройками зоны доступно в панели вашего личного кабинета у регистратора доменного имени.

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

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

Предположим, сайт работает на NS-серверах ns1.somesite.somehost.ua и ns2.somesite.somehost.ua, мы же переносим сайт на NS ns1.somesite.tucha.ua и ns2.somesite.tucha.ua. Заходим в панель управления DNS-записями на somehost.ua, внимательно смотрим список записей и создаем аналогичные записи в панели управления DNS-записями в панели управления доменом на tucha.ua. После того, как изменения будут внесены, можем менять NS-записи. При этом показатель TTL в данном случае особой роли не играет, но чем меньше TTL, тем быстрее пройдёт один из следующих этапов.  Оптимальное решение показателя TTL на время переезда — 300 секунд (5 минут). В результате наш сайт сменит NS-записи, но не потеряет клиентов, что позволит нам изменить TTL уже на нужных NS-серверах.

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

Сценарий бесшовной миграции с сервера на сервер

Шаг 1. Настраиваем одностороннюю репликацию всех данных, которые есть на старом сервере, на новый. 

Создаём копию сайта на новом сервере. Тестируем, запускаем, смотрим, как реагирует сайт на запросы. Если всё исправно работает, настраиваем репликацию баз данных. Что это значит? Когда запрос от посетителей поступает на старый сервер, тот оповещает клиента о новых данных. Новый сервер получает все данные об изменениях со старого сервера в течение считанных секунд (чаще всего, даже за 1 секунду).

Таким образом, на новом сервере копия базы данных постоянно обновляется и остаётся актуальной. Что касается статической информации (файлов, кеша), здесь нужно наладить одностороннюю синхронизацию с диска на диск. Можно воспользоваться как простыми технологиями, так и более сложными (распределёнными файловыми системами). По нашему опыту, вполне достаточно rsync, запускаемого в бесконечном цикле. Он вполне подходит для решения подобных задач, хотя решить вопросы синхронизации статики можно и любыми другими известными и удобными способами.

В результате мы получаем 2 сервера. На старом находится старый сайт, к которому всё еще ходят пользователи. И даже после того, как мы внесём изменения в DNS, ещё минимум 5 минут пользователи будут попадать на старый сервер. 

На новый сервер реплицируется вся информация со старого сервера. Получается, мы имеем полную реплику старого сайта на новом сервере. Важный момент: файлы реплицируются с небольшой задержкой, т.к. нужно сначала посчитать, что именно поменялось.

Шаг 2. Тестируем работу нового сервера.

После настройки репликации тестируем работу сайта на новом сервере. Для того, чтобы ваш локальный компьютер мог обращаться к новой копии сайта без смены настроек DNS, необходимо внести изменение в файл hosts (в ОС Windows это обычно C:\Windows\System32\drivers\etc\hosts), добавив строку вида IP.адрес.нового.сервера (например, 13.13.13.13) yourdomain.com www.yourdomain.com

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

Шаг 3. Настраиваем проксирование для перенаправления веб-трафика на новый сервер.

Перед внесением изменения в DNS переводим работу сайта на старом сервере на новый. Для этого воспользуемся механизмом проксирования, которое доступно и в NGINX, и в Apache HTTP Server. 

конфигурациях веб-сервера указываем, что в случае, если что-то пришло на старый сервер с адресом 6.6.6.6, следует обращаться к новому серверу 13.13.13.13 с этим же запросом, а затем его ответ передать обратно клиенту от своего имени. Клиент обращается к старому серверу, на котором сайта уже нет, но есть проксирующий веб-сервер. Проксирующий веб-сервер с адресом 6.6.6.6 при этом принимает запросы от пользователя, тайком адресует их на 13.13.13.13. Таким образом, клиенты, хоть и обращаются к старому серверу 6.6.6.6, фактически уже работают с сайтом на новом сервере 13.13.13.13. 

Ещё одно преимущество в работе с прокси-сервером в том, что ему можно задавать fall-back (запасной вариант): если на сервере 13.13.13.13 нет необходимого файла, значит, нужно поискать его в локальном каталоге. Это позволяет решить проблему задержки при синхронизации файлов.

Шаг 4. Отключаем старый сервер.

Меняем DNS-записи сайта на 13.13.13.13. Когда приходит посетитель, который всё ещё обращается к 6.6.6.6 (в течение первых 300 секунд после внесения изменений такие запросы ещё будут приходить), проксирующий веб-сервер обрабатывает его запросы путём передачи новому веб-серверу с адресом 13.13.13.13. А когда пользователь напрямую обратится к новому адресу 13.13.13.13, он будет обработан новым сервером в штатном режиме. Это избавляет от проблемы появления расщепления баз данных, так как клиенты работают с одной базой данных, с одним набором файлов, с одним и тем же сайтом. 

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

Готово! Теперь ваш сайт успешно переехал на новый сервер.

Стоимость услуги бесшовной миграции

Вы можете перенести сайт самостоятельно. Мы всегда готовы помочь советом и качественными инструкциями. Или доверьте переезд нам, и мы всё сделаем за вас. Перенос сайта с использованием «заглушки» или способом «расщепления» мы делаем бесплатно. Методика бесшовной миграции требует подготовки и знаний, а также занимает больше времени, поэтому такая услуга платная. Стоимость услуги бесшовного переезда — 100% от стоимости сервера за 1 месяц, но не менее 30 евро. Наши специалисты помогут вам перенести высоконагруженный проект безболезненно, гладко и без ущерба работоспособности сайта.

Подводим итоги

Хотя миграция сайта с сервера на сервер — ответственный и кропотливый процесс, наша методика бесшовного переезда позволяет сделать это без простоев в работе сайта и потери заказов клиентов. 

Если вам нужна помощь в смене хостинга, обращайтесь к нам! Мы поможем перенести проект любого масштаба безболезненно и гладко. Главное: миграция сайта — это совсем не страшно, если доверить её опытному и умелому провайдеру. То есть, нам.  Рады вам 24/7!
 

Поделиться:
Закрыть
Замовити зворотний дзвінок

Пожалуйста, проверьте правильность заполнения поля с номером телефона

Поля обязательные для заполнения.
Этот сайт защищен reCAPTCHA и принимаются Политика конфиденциальности и Условия пользование от Google.

Мы используем cookies.

Мы используем файлы cookies, чтобы обеспечить основные функциональные возможности на нашем сайте и собирать данные о том, как посетители взаимодействуют с нашим сайтом, продуктами и услугами. Нажимая Принять или продолжая использовать этот сайт, вы соглашаетесь с тем, что мы используем эти инструменты для рекламы и аналитики согласно «Политике про файлы сookies»

ПринятьОтказаться