У меня есть поддомен, DNS A запись которого я хотел бы изменить. Должен ли я после этого подождать некоторое время, прежде чем изменение отразится?
Если да, то можно ли во время простоя отправить «сообщение о простое» пользователям, посещающим только что отредактированный поддомен?
Да, изменения DNS имеют задержку распространения из-за способа их кэширования. Длительность задержки контролируется значением TTL («Время жизни») для записи. Если вы явно не указали что-то другое, то это будет от 3 до 24 часов в зависимости от вашего регистратора. Некоторые регистраторы позволяют вам изменять TTL (и если вы размещаете свой собственный DNS, у вас есть полный контроль), но имейте в виду, что изменение TTL будет распространяться на прежнюю длину TTL.
Чтобы узнать, каковы ваши значения TTL, проверьте, отображается ли это на панели управления вашего регистратора. Если нет, то создайте новую запись поддомена A и запустите dig sub.domain.tld
. В результате вы получите примерно следующее:
;; ANSWER SECTION:
sub.domain.tld. 3600 IN A 11.22.33.44
Это показывает, что значение TTL составляет час (3600 секунд). Если вы сделаете это снова через минуту, вы увидите:
;; ANSWER SECTION:
sub.domain.tld. 3540 IN A 11.22.33.44
Это означает, что ваш локальный кеш DNS теперь будет повторно проверять значение не раньше, чем через 59 минут.
Используя новый подобный поддомен, вы знаете, что значение еще не кэшировано, поэтому при первом запросе вы увидите полный TTL. dig
доступен практически в каждой установке Linux (если он не установлен, вы обычно найдете его в пакете "dnsutils") и доступен для Windows через Cygwin (если вам не нужна более полная установка Cygwin, вы можете попробовать частичные копии лайк этот, который включает просто копать, хост и whois.
Следует помнить, что если кеш DNS пользователя недавно не запрашивался об этом конкретном имени, они получат новое значение немедленно при следующем запросе, так что TTL составляет два часа, поэтому в течение периода распространения вы должны ожидать запросов на оба IP-адреса.
Если вы управляете машиной, на которую указывает старый IP-адрес, и на ней не работают другие веб-сайты, вы можете установить перенаправитель, например rinetd
проксировать подключения на новый адрес. Таким образом, даже люди, переходящие по старому адресу, будут видеть контент с нового сервера (только немного медленнее). Если там размещены другие домены, вы можете использовать mod_proxy (или эквивалент вашего веб-сервера) для достижения той же цели. Хотя, если период распространения достаточно короткий, вы можете заменить все страницы этого сайта на этом сервере сообщением «сайт вернется в течение X часов», что, очевидно, проще.
В качестве альтернативы вы можете установить очень короткий TTL за день или два до изменения - так задержка распространения в любом случае будет небольшой. На самом деле у меня постоянно установлен TTL на пять минут. Не устанавливайте его слишком коротким: технически TTL равен 0 должен означает «никогда не кэшировать это значение», но некоторые ошибочные кэши DNS и клиентское программное обеспечение будут игнорировать все, что ниже определенного значения, и вместо этого предполагать что-то большее.
При изменении DNS требуется некоторое время, чтобы изменения распространялись по всему Интернету. В зависимости от вашего интернет-провайдера / местоположения это может занять от нескольких секунд до 48 часов.
Вы можете использовать старый IP-адрес, чтобы настроить временный веб-сервер, чтобы уведомить ваших пользователей об ожидающем обновлении DNS и перенаправить их на вновь созданный поддомен, который также указывает на новый IP-адрес. Обычно они распространяются быстрее.
Как только настройки DNS будут распространены, пользователи будут автоматически перенаправлены на новый IP-адрес. Если временный сервер больше не получает запросов, можете быть уверены, что процесс завершен.
Смена серверов и IP-адресов:
1.2.3.4 = старый ip
1.2.3.5 = новый ip
Переместите все, что вам нужно для перемещения.
Начало:
mydomain.com. A 1.2.3.4
Изменения к:
mydomain.com. A 1.2.3.5
new A 1.2.3.5
Измените веб-сервер в 1.2.3.4, чтобы отобразить заставку, которая перенаправляется на new.mydomain.com.
Смена IP на том же сервере:
Если вы не меняете серверы, а только IP-адреса, измените виртуальный хост для прослушивания обоих IP-адресов и измените A-запись. Пользователи будут постепенно использовать новый IP-адрес по мере распространения DNS.
NameVirtualHost 1.2.3.4
NameVirtualHost 1.2.3.5
<VirtualHost 1.2.3.4 1.2.3.5>
DocumentRoot /www/mydomain.com
ServerName server.mydomain.com
ServerAlias server
</VirtualHost>
да, распространение DNS может составлять от нескольких секунд до нескольких часов (в зависимости от вашего географического положения и DNS-серверов в вашем регионе. вы не можете помещать сообщение о простое, так как оно будет отображаться только в том случае, если ваша запись A была успешно распространена на все DNS Вы можете сделать одну вещь: просто пока не отключайте старый сервер, так как сайт должен работать с обоих серверов, если только запись A не заполнена должным образом.
чтобы проверить разрешение DNS, возьмите список общедоступных DNS-серверов из Интернета и выполните эту команду:
nslookup yoursite.com 8.8.8.8 <- google dns
nslookup yoursite.com 4.2.2.6 <-verizon dns
таким образом, продолжайте проверять случайные DNS-серверы.
Когда вы изменяете запись DNS A, требуется время, чтобы это изменение отразилось во всем Интернете. Обычно утверждается, что это может занять до 48 часов, хотя может занять значительно больше времени.
Если у вас есть доступ к изменению TTL домена, я бы посоветовал сделать это, так как это может помочь быстрее увидеть изменения.
Что бы я сделал, так это поместил бы сообщение на старый сервер, сообщающее людям, что сайт перемещается и когда это произойдет. Также дайте им возможность связаться с вами, если они не смогут получить новый сайт через 48 часов.
Если вы планируете сделать это в будущем, заранее уменьшите TTL для A-записи.
Он по-прежнему не будет мгновенно изменен везде, поэтому ожидайте временного интервала, в течение которого будут доступны оба IP-адреса.
Если у вас все еще есть старый IP-адрес, вы можете отображать сообщение, проксировать запрос и т. Д.