Как перенести сайт на другой хостинг без простоя и потери данных

  • Автор:

switching-web-hosts-000.pngТема, обозначенная нами в заголовке статьи не нова и довольно избита, мы вообще не планировали к ней обращаться, если бы не одно обстоятельство. К нам с завидной регулярностью обращаются клиенты, читатели, знакомые с просьбой помочь в с переносом сайта и это несмотря на огромное количество статей на эту тему. Решив разобраться в ситуации, мы провели беглое ознакомление с данной темой и выяснили, что подавляющее большинство материалов написаны словно под копирку и содержат одни и те же ошибки. Поэтому, отбросив сомнения, мы сели за перо.

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

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

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

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

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

Большинство найденных нами материалов в сети предлагали совершенно ошибочную последовательность:

  • Перенаправление доменного имени
  • Перенос базы данных
  • Перенос содержимого сайта.

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

Многолетний опыт позволил нам выработать принципиально иную последовательность действий, которая обеспечивает максимально безболезненный процесс переноса.

switching-web-hosts-001.pngПрежде всего стоит переносить содержимое сайта, так как оно имеет самый большой размер (иногда исчисляемый гигабайтами) и преимущественно статично. В большинстве случаев, если вы не добавляете новых материалов на сайт, то новых или измененных файлов там быть не должно. Затем следует перенести базу данных, которая более динамична и записи в ней могут изменяться и добавляться как вами, так и посетителями.

Последний этап - перенаправление доменного имени, но не следует спешить. Прежде всего выполните все настройки сайта на новом месте и убедитесь, что все работает как надо, также переезд - прекрасный повод внедрить новые серверные решения, например, настроить NGINX вместо Apache. С учетом того, что содержимое сайта и базы данных перенесены вы можете делать это "вживую", но спокойно, без всякой спешки, а пользователи пока будут продолжать ходить на старый хостинг.

И только как все будет готово и проверено следует перенаправить домен и принимать посетителей уже на новом сервере. Давайте теперь рассмотрим все этапы более подробно.

Этап 1. Планирование и подготовка

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

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

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

Не забудьте уточнить версии используемых CMS и модулей к ним, после чего обязательно проверьте их совместимость с планируемым к использованию на новом сервере ПО, в частности следует обратить внимание на версию PHP. При необходимости запланируйте их обновление, которое лучше всего попробовать выполнить на стенде еще до начала всех мероприятий.

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

Этап 2. Управление доменным именем

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

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

Как это сделать? Прежде всего следует выяснить регистратора домена, для этого воспользуйтесь сервисом Whois:

switching-web-hosts-002.pngКодовое имя регистратора содержится в строчке registrar, в нашем случае это R01-RU, что соответствует компании Регистратор R01. Вы можете перенести домен непосредственно к регистратору или одному из его реселлеров, список которых обычно можно найти на сайте регистратора. Если хорошо поискать, то можно найти реселлера с достаточно привлекательными ценами и условиями оплаты. Сегодня можно регистрировать и продлевать домены по 120 - 130 рублей, а если хорошо поискать - то и еще дешевле.

Выбирая реселлера обращайте внимание на две вещи: стоимость продления и способы оплаты. Есть распространенная "фишка" - указывать на видном месте цены регистрации, не указывая цен продления, которые могут быть гораздо выше, возьмем для примера одного довольно крупного и известного реселлера:

switching-web-hosts-003.pngНа первый взгляд все довольно привлекательно, но если найти ниже неприметную ссылочку "показать цены продления", то картина нарисуется совсем не радужная:

switching-web-hosts-004.png

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

Второй "фокус" состоит в разных комиссиях при оплате через разные платежные системы, на некоторые из которых она может оказаться совершенно неприличной. Для сравнения скриншот из панели еще одного реселлера:

switching-web-hosts-005.pngЕсли вы планируете оплату через электронные платежные системы, то заодно поинтересуйтесь комиссией на их пополнение доступными для вас способами. Очень часто оказывается, что суммарная комиссия (комиссия на пополнение электронного кошелька + комиссия платежной системы + комиссия реселлера) делает такой способ оплаты совсем невыгодным. По нашему опыту ориентироваться всегда стоит на банковские карты и PayPal, выбирать электронные деньги имеет реальный смысл тогда, когда у вас есть регулярные поступления в данной платежной системе.

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

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

Разобравшись с размешением и оплатой домена, мы плавно переходим к следующему, очень важному вопросу - управлению DNS-зоной. Если вы не знаете, что такое служба DNS и как она влияет на работу сайта, то рекомендуем отвлечься и прочитать нашу статью "Создаем свой сайт. Настройка DNS-зоны".

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

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

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

Из бесплатных DNS-хостингов мы можем посоветовать Яндекс, который предоставляет DNS-сервера в рамках услуги Почта для домена, при этом саму почту настраивать абсолютно не обязательно, но такая возможность идет дополнительным плюсом, особенно если вам нужно всего пару технических почтовых ящиков, наподобие admin@example.com или webmaster@example.com. Это дополнительно облегчит вопросы переноса вашего сайта, так как отпадает необходимость каждый раз переносить и настраивать почту.

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

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

Этап 3. Подготавливаем домен к переносу

Наиболее длительным и неконтролируемым этапом при переносе является изменение настроек DNS, которые должны перенаправить посетителей на новый сервер. Обычно считается что DNS-сервера обновляются от нескольких часов до суток и повлиять на этот процесс нельзя. Но ранее мы не зря говорили, что очень важен собственноручный контроль над DNS-зоной. Найдем в ней SOA-запись, это основная запись зоны и нас в ней должен интересовать параметр Minimum TTL - это минимальное время жизни ресурсных записей зоны, которое указывает другим серверам сколько времени они могут хранить в кеше полученную информацию.

switching-web-hosts-006.pngВ нашем случае это значение равно 14400 секундам или 4 часам, непосредственно перед переносом данное значение следует уменьшить до нескольких минут, скажем 5 или 15. Это позволит гораздо быстрее обновить информацию на основных DNS-серверах в сети, однако не все сервера строго следуют значению TTL домена, небольшие провайдеры или корпоративные сети могут игнорировать это значение и кешировать DNS-запросы на более продолжительный срок.

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

Этап 4. Перенос сайта и его настройка на новом сервере

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

Переносить и проверять сайт крайне желательно с его настоящим доменным именем, а не с техническим, как это советуется в некоторых руководствах. Но DNS-записи пока продолжают указывать на старый сервер, поэтому самое время вспомнить о таком файле как hosts, добавляем туда запись типа:

111.222.333.444 example.com

где 111.222.333.444 - IP-адрес нового сервера.

Если вы используете виртуальный хостинг, то обязательно привяжите к нему свой домен, но не изменяйте пока NS-записи (чтобы сайт работал на старом сервере). После чего хостер выдаст вам технический адрес вида example.hoster.com по которому можно выяснить IP-адрес сервера размещения и внести его в файл hosts.

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

Важно! Обратите внимание, что если вы используете непрозрачный прокси, то указанный метод работать не будет, так как в этом случае DNS-запросы отправляет не клиент, а прокси-сервер.

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

Этап 5. Заключительная синхронизация и перенаправление домена

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

Теперь следует синхронизировать последние изменения между старым и новым сервером, если доступно подключение через SSH - то удобно использовать rsync, в противном случае просто заново залейте содержимое на новый сервер, указав перезаписывать только явно измененные файлы. Это не должно занять много времени. Затем выгружаем дамп базы данных и загружаем его на новом сервере. Переводим сайт в нормальный режим и отключаем режим только чтение.

После чего изменяем DNS-записи таким образом, чтобы они указывали на новый сайт. Если вы предварительно уменьшили TTL, то первые посетители начнут приходить уже через 10-15 минут. Кстати не забудьте после изменения DNS-записей снова увеличить TTL.

Если вы все сделали правильно, то для большинства посетителей переезд пройдет незамеченным, особенно если вы подгадаете заключительный этап на время с наименьшей посещаемостью (ночное время, выходной или праздничный день). Самые настойчивые в течении короткого времени будут видеть сообщение, что идут технические работы и некоторые функции сайта ограничены. Полностью переход обычно завершается в течении суток, но не следует забывать о тех DNS-серверах, которые игнорируют TTL, поэтому мы рекомендуем держать старый сервер в работе еще некоторое время, как минимум неделю. В своей практике мы оставляем его в работе до конца оплаченного периода.

Вместо заключения. Некоторые финансовые вопросы.

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

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

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

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

Что будет если вы не уведомите провайдера о расторжении контракта? Вам будет выставлен счет за следующий период, либо будет произведено автоматическое списание средств. И даже если вы сразу после этого заявите о расторжении, то вам скорее всего придется оплатить этот месяц и следующий.

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

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

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

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

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

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Поддержи проект!

Или подпишись на наш Телеграм-канал: Подпишись на наш Telegram-канал



Loading Comments