Настройки DNS для быстрого переноса работающего сайта
При переносе сайта на другой сервер в записях NS домена сайта необходимо прописать адрес нового сервера сайта. В идеале это приведет к открытию сайта уже с нового сервера. При этом есть промежуток времени, когда у части посетителей сайт будет открываться не с нового сервера, а со старого, связано это с хранением адреса сервера сайта в кэше сетевого оборудования/ПК пользователя:
- если старый адрес сервера сайта не сохранился в кэше ПК(или сетевого оборудования пользователя/интернет-провайдера) - сайт откроется с нового сервера,
- если старый адрес сервера сайта сохранился в кэше ПК(или сетевого оборудования пользователя/интернет-провайдера) - сайт откроется со старого сервера.
Старый адрес сервера сайта обычно хранится до 24 часов (в некоторых случаях больше).
Для корректного переноса сайта воспользуемся следующим алгоритмом:
- переносим сайт на новый сервер (здесь полезная статья по переносу сайтов среднего размера);
- на новом сервере создаем дублирующий адрес (например, основной "site.ru", создаем алиас, которыей не был настроен на NS сервере - "main.site.ru");
- в DNS записях домена добавляем алиас сайта на новом сервере, на нашем примере:
- тип записи "A",
- запись ".main.site.ru.",
- значение "194.226.215.67" (указываем адрес нового сервера);
- на новом сервере настраиваем алиас к основному домену (добавляем псевдоним "main.site.ru" к "site.ru");
- на первые 5 суток после переноса, сохраним работоспособность сайта на старом сервере, вносим изменения:
для перенесенных доменов прописываем переадресацию (редирект) с сайта на алиас сайта на новом сайте (в нашем примере - на "main.site.ru");
поскольку адрес сервера для "main.site.ru" мы внесли новый (а не изменили) - не нужно ждать обновления записей DNS, поэтому новый сайт по адресу алиаса будет открываться корректно на новом сервере.
Как итог:
- если старый адрес сервера сайта не сохранился в кэше ПК(или сетевого оборудования пользователя/интернет-провайдера) - сайт откроется с нового сервера как и необходимо,
- если старый адрес сервера сайта сохранился в кэше ПК(или сетевого оборудования пользователя/интернет-провайдера) - сайт откроется со старого сервера, включится переадресация, сайт откроется на новом сервере по адресу алиаса.
Переадресация будет работать, пока записи NS сайта не обноваться, после этого сайт будет открываться по необходимому адресу с нового сервера.
Общее замечание:
- описанный алгоритм применим для систем управления содержимым, для которых домен (URI) может быть динамичными, например для CMS Drupal.
Примеры реализации переадресации "перемещен временно" ("302 Redirect")
Пример записи в .htaccess с ипользованием mod_rewrite
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.site.ru$ [NC]
RewriteRule ^(.*)$ http://main.site.ru/$1 [R=302,L]
RewriteCond %{HTTP_HOST} ^site.ru$ [NC]
RewriteRule ^(.*)$ http://main.site.ru/$1 [R=302,L]
Пример записи в .htaccess без ипользования mod_rewrite
redirect 302 / http://main.site.ru/
Пример записи в HTML коде страницы в блоке <head> </head>
<head>
<meta http-equiv="refresh" content="0; url=http://main.site.ru/">
</head>
Примечание: в указанном способе переадресация будет происходить только со страниц в которых присутствует данный код.