Я прочитал здесь кучу соответствующих вопросов и ответов, но я все еще не уверен, какой ответ будет лучшим.
Я перемещаю пару сайтов с IP-адреса «1.a.b.c» на «2.d.e.f». На данный момент в существующем DNS я установил для всех TTL значение 300 секунд, и у меня есть новая зона DNS, готовая к использованию (на AWS Route 53), с новыми серверами имен и всеми TTL равными 60 секундам. Так что я считаю, что готов с точки зрения DNS. После переезда, через несколько дней я установлю TTL на более разумные значения на Route 53.
Я предупредил всех своих пользователей о переезде, и у меня есть определенное время для переезда. Я сказал им, что после завершения перемещения и если прошло 24 часа, а они все еще видят старые (заблокированные) сайты, им следует перезагрузить свой компьютер, чтобы принудительно очистить локальный кеш DNS.
Я не понимаю, какую роль в этом играет браузер пользователя (кеш). Мои собственные эксперименты с файлом локальных хостов (Win7) говорят мне, что в браузере есть что-то, что не пропускает старый IP-адрес - мне пришлось перейти на история-> очистить все чтобы новое местоположение сайта отображалось даже после ipconfig /flushdns
(EDIT) - у меня нет корневого доступа к старому серверу, поэтому я не могу реализовать принял ответ на этот вопрос.
Вопрос: Я действительно не хочу, чтобы мои пользователи сталкивались с этим, так что я могу сделать что-то, чтобы заставить все браузеры повторно кешировать? И если да, то как долго я оставлю его включенным?
Спасибо...
Нет, не можешь. Проблема в том, что ответ DNS можно кэшировать где угодно между пользователем и сервером DNS, и нет способа сделать их недействительными.
Однако что вы можете сделать - как только у вас есть данные в синхронизации и ваш второй сайт будет готов, вы можете перенастроить исходный сервер, чтобы он работал как прокси и передавал все запросы в новое место.
Таким образом, вы можете сократить время простоя вашего сайта почти до нуля.
Обновить
Если у вас нет root-доступа, есть несколько вариантов:
Выполнить проксирование в PHP
Настройте прокси на втором сервере (если у вас есть там root-доступ), переключите DNS и когда будете готовы, поменяйте прокси на веб-сервер
Этот метод может быть источником проблем Иметь 2 адреса (www.domain.tld и www2.domain.tld). Настройте www2 (то же самое, что и www) и установите правильные записи DNS. Затем подготовьте www-версию своего сайта и переключите DNS. Установите перенаправление всех запросов на старом сервере на субдомен www2.
Теоретически установка значения TTL домена на какое-то низкое значение и ожидание этого изменения с последующим изменением IP-адреса должно привести к почти прозрачной миграции. В конце концов, в этом весь смысл настройки TTL.
На практике люди неправильно настраивают вещи, и инструменты ломаются. Вот почему вам может потребоваться предоставить пользователям инструкции по очистке их локального кеша, если что-то не работает.
Но вы не делаете ничего плохого.
Ваш старый адрес неизбежно будет кэшироваться и использоваться в течение длительного времени, в основном ботами.
Как бы я это сделал:
www2.yourdomain.com
, указывая на новый IP. Эту запись никогда не следовало использовать раньше; поэтому никогда не кешируется.www2.yourdomain.com
www2.yourdomain.com
к www.yourdomain.com
.Обязательно используйте 301 постоянный редирект. https://en.wikipedia.org/wiki/HTTP_301
Похоже, вы планируете одновременно сменить серверы имен? Из-за способа обнаружения серверов имен их обновление занимает намного больше времени, чем обычная запись - часто около 24 часов или дольше.
Я очень рекомендую вам обновить DNS у вашего текущего провайдера перед изменение DNS или изменение серверов имен за 7 дней до изменения IP-адреса веб-сайта.
Современные компьютеры и браузеры довольно надежно соблюдают TTL с DNS, но вам необходимо понимать всю цепочку для достижения наилучших результатов.