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