Хостинг от Ukr SKY
личный кабинет
служба поддержки
UA
Menu
СЛУЖБА ПОДДЕРЖКИ

Как проверить сайт на новом сервере до изменения DNS через файл hosts

Читать 26 мин.
31.07.2026

Сайт уже перенесён на новый сервер, файлы и база данных скопированы, веб-сервер настроен, но менять A-запись домена пока рано. Сначала нужно убедиться, что новая площадка действительно работает: WordPress открывается, PHP выполняется, база отвечает, HTTPS не выдаёт ошибок, редиректы ведут куда нужно, а формы и внутренние страницы не ломаются.

Для такой проверки не обязательно менять публичный DNS. Файл hosts позволяет временно указать своему компьютеру: домен example.com нужно открывать не с текущего IP, который возвращает DNS, а с IP нового сервера. Остальные посетители при этом продолжают работать со старой площадкой.

Но одной строки в hosts недостаточно. Бывает, что основной домен уже приходит на новый VPS, а после редиректа на www браузер снова оказывается на старом. HTTP работает, а HTTPS попадает в default virtual host. curl показывает правильный IP, но браузер продолжает отдавать старую страницу. Поэтому проверку лучше строить как короткую диагностическую цепочку: новый сервер → hosts → фактическое соединение → virtual host → SSL → WordPress → внешняя инфраструктура.


Зачем проверять сайт через hosts до изменения DNS

Файл hosts нужен, когда новый сервер уже подготовлен, а отправлять на него реальных посетителей ещё рано. Компьютер администратора начинает открывать домен с нового IP, тогда как публичная A-запись остаётся прежней.

Типичный сценарий — перенос WordPress на другой VPS. Файлы скопированы, база импортирована, домен добавлен в Nginx, но ещё неизвестно, работает ли авторизация, правильно ли подключилась база, нет ли ошибок PHP и какой сертификат отдаётся на 443-м порту. Если сначала переключить DNS, диагностировать всё это придётся уже на рабочем трафике.

Что происходит во время проверки:

Обычный посетитель: example.com → публичный DNS → 198.51.100.20.

Компьютер тестировщика: example.com → hosts → 203.0.113.25.

Домен в адресной строке остаётся настоящим. Это принципиальное отличие от проверки сайта по временному IP или техническому URL. WordPress видит привычный hostname, браузер отправляет правильный Host, HTTPS использует нужное имя для SNI, а редиректы можно проверить в тех же условиях, в которых сайт будет работать после миграции.

Когда hosts удобнее временного домена

Для проверки одной миграции hosts часто проще staging-домена. Не нужно менять URL WordPress, править ссылки в базе или временно отключать принудительные редиректы на основной hostname. Если задача — открыть новую копию сайта только на своём компьютере, локальная подмена адреса решает её точнее.

Но hosts не должен превращаться в замену всей предпродакшен-проверки. Если новый сайт должны одновременно смотреть пять сотрудников, проще поднять staging. Если сторонняя система сама обращается к вашему домену, локальная запись на ноутбуке на неё вообще не повлияет. Эту границу стоит определить до начала теста.

Что именно делает файл hosts и чего он не меняет

Файл hosts задаёт локальное соответствие между конкретным hostname и IP-адресом. Если добавить строку:

203.0.113.25 example.com

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

Например, в DNS:

example.com → 198.51.100.20

а в локальном hosts:

203.0.113.25 example.com

Тогда тестовый компьютер работает с 203.0.113.25, а остальные посетители продолжают открывать 198.51.100.20.

www, основной домен и поддомены — разные hostname

example.com и www.example.com нужно рассматривать отдельно. Запись для основного домена не покрывает автоматически www.

203.0.113.25 example.com
203.0.113.25 www.example.com
Имя Нужно указывать отдельно
example.com Да
www.example.com Да
shop.example.com Да
api.example.com Да
*.example.com Wildcard в обычном hosts не заменяет перечисление hostname

На миграциях это даёт очень характерный симптом. example.com уже прописан на новый VPS, браузер открывает новую копию, затем сервер отвечает редиректом на https://www.example.com/. Если www забыли добавить, следующий запрос уходит по публичному DNS на старую площадку. Со стороны выглядит так, будто hosts «иногда работает, а иногда нет».

Что hosts не меняет

Локальная запись не редактирует DNS-зону у регистратора или DNS-провайдера. Она не меняет NS, MX, TXT, CAA и другие публичные записи. Она также не заставляет внешние серверы использовать новый IP.

Если вы проверили сайт через hosts, это ничего не говорит о том, куда доставляется почта по MX, видит ли новый IP сторонний webhook и обновились ли DNS-записи у пользователей в других странах. Проверен только маршрут с конкретного устройства.

Когда hosts не подходит для полноценной проверки сайта

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

Webhooks и callbacks

Предположим, новый сайт принимает callback от платёжной системы или webhook от CRM. Вы открываете сайт через hosts и видите новую версию, но платёжный сервис по-прежнему разрешает example.com через публичный DNS и отправляет callback на старый сервер.

Локальная запись на вашем компьютере здесь не участвует.

То же касается:

  • платёжных callbacks;
  • webhooks из GitHub, CRM, Telegram или других сервисов;
  • OAuth redirect/callback-сценариев, если проверка включает внешний сервер;
  • роботов поисковых систем;
  • удалённых API-клиентов;
  • систем мониторинга, которые работают не с вашего компьютера.

Проверка с нескольких устройств

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

Почта тоже живёт отдельно

Проверка сайта через hosts не подтверждает работу почтового домена. Если после миграции меняется ещё и почтовая инфраструктура, MX, SPF, DKIM и приём SMTP нужно тестировать отдельно.

Задача Достаточно hosts
Открыть WordPress с нового VPS в своём браузере Да
Проверить Nginx/Apache virtual host Да
Проверить SSL на origin Да
Проверить внешний webhook Нет
Проверить публичный MX Нет
Проверить сайт сразу для большой команды Не всегда удобно
Проверить глобальное распространение DNS Нет

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

Как проверить готовность нового сервера до изменения hosts

Запись в hosts бессмысленно править, если новый сервер ещё не готов обслуживать нужный hostname. Сначала стоит проверить Nginx или Apache, порты 80/443, DocumentRoot и ответ virtual host напрямую на новом IP.

Проверьте, слушает ли сервер HTTP и HTTPS

На Linux-сервере можно посмотреть, какие процессы слушают 80-й и 443-й порты:

ss -lntp | grep -E ':80|:443'

Если Nginx или Apache вообще не слушает нужный порт, редактирование hosts ничего не исправит. Браузер в такой ситуации может получить Connection refused либо зависнуть до timeout — в зависимости от того, как ведут себя сервис и firewall.

Connection refused обычно означает, что соединение дошло до адреса, но на этом порту никто не принимает запрос или порт отклоняется. Timeout чаще заставляет искать проблему в firewall, маршрутизации, security group или недоступности самого сервера.

Проверьте конфигурацию Nginx или Apache

Для Nginx перед тестированием полезно убедиться, что конфигурация синтаксически корректна:

nginx -t

В virtual host должен присутствовать нужный hostname, например:

server_name example.com www.example.com;

Если сервер отдаёт default page вместо нужного сайта, хотя IP правильный, проблема часто именно здесь: запрос до VPS дошёл, но веб-сервер выбрал не тот server-блок.

Для Apache ту же роль выполняют ServerName и ServerAlias. Команда проверки конфигурации зависит от системы и способа установки Apache, поэтому важнее сам принцип: до локальной подмены DNS убедиться, что веб-сервер знает этот домен.

Проверьте virtual host напрямую

Быструю HTTP-проверку можно выполнить вообще без hosts:

curl -I -H "Host: example.com" http://203.0.113.25

Команда соединяется с новым IP, но отправляет:

Host: example.com

Если вместо сайта приходит серверная заглушка, другой проект или неожиданный редирект, сначала исправляется virtual host. Смена DNS здесь ни при чём.

Есть и более точный вариант:

curl --resolve example.com:80:203.0.113.25 http://example.com/

Он полезен тем, что curl работает с настоящим URL example.com, но соединение принудительно направляется на нужный IP.

Если приходит 200, но сайт всё равно не тот

Код 200 сам по себе не доказывает правильную конфигурацию. Если на VPS размещено несколько сайтов, default virtual host тоже может вернуть 200. В такой ситуации проверяют:

  • server_name или ServerName;
  • DocumentRoot;
  • конфигурацию PHP-FPM для конкретного сайта;
  • какой конфиг реально загружен веб-сервером;
  • нет ли старой копии сайта в другом каталоге.

До редактирования hosts новый сервер должен пройти минимум такие проверки:

  • веб-сервер слушает 80 и 443, если HTTPS уже настроен;
  • домен присутствует в virtual host;
  • DocumentRoot ведёт в каталог новой копии;
  • WordPress или другая CMS подключается к нужной базе;
  • HTTP-запрос с правильным Host возвращает ожидаемый сайт;
  • понятно, какой сертификат будет использовать HTTPS.

Если этот этап не пройден, hosts только перенесёт проблему из терминала в браузер.

Как изменить файл hosts в Windows, macOS и Linux

Файл hosts системный, поэтому для сохранения изменений нужны повышенные права. Формат простой: сначала IP, затем один или несколько hostname, разделённых пробелами или табуляцией.

203.0.113.25 example.com www.example.com
ОС Путь Повышенные права
Windows C:\Windows\System32\drivers\etc\hosts Да
macOS /etc/hosts Да
Linux /etc/hosts Да

Windows

Откройте Блокнот или другой текстовый редактор от имени администратора, затем откройте:

C:\Windows\System32\drivers\etc\hosts

Если файл не виден в окне открытия, выберите отображение всех файлов. У hosts нет расширения.

Одна из самых неприятных мелочей в Windows — случайно сохранить новую версию как hosts.txt. Если расширения скрыты, пользователь видит имя hosts, но Windows продолжает работать со старым системным файлом.

Перед проверкой имеет смысл включить отображение расширений файлов и убедиться, что в каталоге etc не появился отдельный hosts.txt.

Строки, начинающиеся с #, считаются комментариями. Поэтому такой вариант не работает:

# 203.0.113.25 example.com

А такой работает:

203.0.113.25 example.com

macOS

В macOS файл расположен по адресу:

/etc/hosts

Открыть его можно, например, через Terminal:

sudo nano /etc/hosts

После сохранения не ограничивайтесь просмотром самого файла. Следующий шаг — проверить фактическое соединение через curl.

Linux

В Linux используется тот же путь:

/etc/hosts

Один из простых вариантов редактирования:

sudo nano /etc/hosts

Если нужно протестировать основной домен и www, допустимо записать оба имени в одной строке:

203.0.113.25 example.com www.example.com

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

Лучший вариант — заранее сохранить копию исходного файла или хотя бы пометить собственную строку комментарием рядом. Через несколько недель забытая запись в hosts превращается в очень странный баг: у всех сайт уже работает с нового IP, а один компьютер продолжает ходить на старый.

Как доказать, что домен действительно открывается с нового сервера

Внешний вид страницы не доказывает, что запрос пришёл на новый сервер. Старая и новая копии WordPress могут быть идентичны, главная может отдаваться из кеша, а HTTP-заголовки Nginx на обоих VPS — совпадать.

Первое доказательство — фактический IP соединения.

curl -v https://example.com/

В выводе нужно найти строку, где показано соединение. В зависимости от версии curl она может выглядеть примерно так:

* Connected to example.com (203.0.113.25) port 443

Главное здесь — 203.0.113.25. Если это IP нового VPS, локальное разрешение имени сработало как ожидалось.

Проверьте запрос в access.log

Второе независимое подтверждение — журнал веб-сервера. Откройте страницу с тестового компьютера и сразу проверьте access.log нового сайта.

Запись может выглядеть примерно так:

192.0.2.50 - - [27/Aug/2026:01:10:22 +0300] "GET /server-check.txt HTTP/1.1" 200

Не нужно анализировать весь лог. Достаточно увидеть свежий запрос к конкретному URL с ожидаемым кодом ответа.

Если страница возвращает 500, одновременно смотрите error.log. На этом этапе часто выясняется, что сеть и hosts работают идеально, а проблема уже внутри PHP, WordPress или базы.

Создайте временный файл только на новом сервере

Для двух визуально одинаковых копий сайта удобно создать на новой площадке файл:

server-check.txt

Например, с короткой строкой:

new-server-test

Затем открыть:

https://example.com/server-check.txt

Если файл доступен, а соответствующий запрос появился в access log нового сервера, доказательств уже два. После теста файл удаляется.

Надёжная проверка нового сервера:

  1. curl -v показывает новый IP;
  2. запрос появляется в access.log новой площадки;
  3. уникальный тестовый файл существует только на новом сервере.

Если эти признаки совпали, снова чистить DNS-кеш без причины уже нет смысла. Системный маршрут работает. Если браузер при этом показывает что-то другое, искать нужно выше: кеш страницы, Secure DNS, proxy, VPN или редиректы.

Как проверить новый сервер через curl --resolve без изменения hosts

curl --resolve позволяет проверить конкретный hostname на конкретном IP без изменения системного hosts. Для быстрой диагностики virtual host, HTTP и HTTPS это часто самый чистый первый тест.

HTTP:

curl --resolve example.com:80:203.0.113.25 http://example.com/

HTTPS:

curl --resolve example.com:443:203.0.113.25 https://example.com/

В обоих случаях URL остаётся example.com, но соединение выполняется с 203.0.113.25. Поэтому веб-сервер получает правильный Host, а HTTPS-запрос сохраняет нужный hostname для SNI.

Когда curl --resolve удобнее hosts

Если нужно быстро ответить на вопрос «готов ли этот virtual host на новом сервере?», редактировать системный файл необязательно. Одна команда сразу исключает часть переменных: системный DNS-кеш, случайный hosts.txt, старую локальную запись и часть браузерного поведения.

Это особенно полезно при первичной диагностике:

  • отдаёт ли новый сервер нужный сайт;
  • правильно ли настроен Host;
  • отвечает ли HTTPS;
  • какой сертификат приходит;
  • есть ли редирект;
  • возвращается ли 200, 301, 403, 404 или 500.

Когда всё-таки нужен hosts

curl --resolve проверяет один HTTP-клиент. Он не заменяет полноценный просмотр сайта в браузере. Если нужно проверить WordPress-админку, JavaScript, загрузку изображений, cookies, формы, корзину WooCommerce и несколько переходов между страницами, удобнее добавить запись в hosts и работать с сайтом обычным способом.

hosts

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

curl --resolve

Подходит для точной диагностики одного hostname, IP и порта без изменения системных файлов.

Оба инструмента решают одну задачу на разных уровнях. curl --resolve хорошо отвечает на вопрос «правильно ли сервер принимает этот домен», а hosts — «как сайт ведёт себя на моём компьютере до смены DNS».

Почему после изменения hosts всё ещё открывается старый сервер

Если запись добавлена, а браузер продолжает показывать старую копию сайта, проверяйте цепочку по порядку. Хаотичный flushdns, очистка cookies и перезапуск роутера часто только прячут настоящий симптом.

Шаг 1. Проверьте реальный hosts

Убедитесь, что редактировался системный файл и в нём сохранён новый IP:

203.0.113.25 example.com www.example.com

В Windows отдельно исключите hosts.txt.

Шаг 2. Посмотрите, куда ведут редиректы

Очень характерная ситуация: example.com уже открывается с нового сервера, но тот отвечает:

HTTP/1.1 301 Moved Permanently
Location: https://www.example.com/

Если www.example.com не добавлен в hosts, второй запрос снова уйдёт на публичный IP.

Первый ответ можно посмотреть так:

curl -I http://example.com/

Всю цепочку редиректов:

curl -IL http://example.com/

Опция -L заставляет curl следовать за перенаправлениями. Если на одном из шагов меняется hostname, проверьте, есть ли он в локальном hosts.

Шаг 3. Сбросьте системный DNS-кеш, если он действительно мешает

В Windows:

ipconfig /flushdns

В macOS и Linux способ зависит от используемого resolver. Универсальной команды для всех систем нет. Если curl уже показывает новый IP, повторная очистка системного DNS-кеша обычно ничего не даст — разрешение имени уже работает.

Шаг 4. Если curl новый, а браузер старый — ищите в браузере

Сценарий простой: curl показывает 203.0.113.25, а браузер продолжает показывать старую страницу. В этот момент hosts уже нельзя считать главным подозреваемым.

Проверьте:

  • кеш браузера;
  • Service Worker;
  • Secure DNS / DNS over HTTPS;
  • расширения браузера;
  • локальный proxy;
  • VPN;
  • DevTools → Network и фактические запросы.

Приватное окно помогает исключить часть кеша и расширений, но не считается техническим доказательством само по себе. Сравнивайте с curl и серверным логом.

Шаг 5. Не ориентируйтесь только на nslookup

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

Если nslookup показывает старый адрес, но:

curl -v https://example.com/

соединяется с новым IP, для проверки сайта важнее фактическое HTTP-соединение.

Шаг 6. Проверьте IPv4 и IPv6 отдельно

Если у домена есть AAAA, нужно понимать, по какому протоколу реально идёт запрос. Для диагностики удобно принудительно сравнить:

curl -4 -v https://example.com/

и:

curl -6 -v https://example.com/

Если IPv4 ведёт на новый сервер, а IPv6 — на старый или вообще не отвечает, причина уже видна. Отключать IPv6 «на всякий случай» не нужно.

Симптом Вероятный уровень Что проверить
example.com новый, www старый Hostname / редирект curl -IL и запись www в hosts
curl новый, браузер старый Браузер / DoH / proxy DevTools, Secure DNS, VPN, кеш
nslookup показывает старый IP Прямой DNS-запрос Проверить фактическое соединение через curl
Открывается default page Virtual host server_name, ServerName, DocumentRoot
IPv4 новый, IPv6 старый AAAA / IPv6 curl -4 и curl -6
После HTTP сайт «возвращается» на старый сервер 301/302 на другой hostname curl -IL

Как диагностировать HTTPS, SSL и virtual host на новом сервере

HTTPS нужно проверять через настоящий hostname. Открытие https://203.0.113.25 не воспроизводит обычный запрос к домену: сервер может выбрать другой virtual host, а сертификат будет проверяться относительно IP.

После настройки hosts базовая проверка выглядит так:

curl -v https://example.com/

Без изменения hosts:

curl --resolve example.com:443:203.0.113.25 https://example.com/

Для просмотра сертификата и SNI:

openssl s_client -connect 203.0.113.25:443 -servername example.com

HTTP работает, HTTPS показывает другой сайт

Если http://example.com приходит на нужный проект, а https://example.com открывает чужой домен или стандартную страницу, запрос, скорее всего, попадает не в тот HTTPS virtual host.

Это уже не проблема hosts. Клиент пришёл на правильный IP, но конфигурация 443-го порта выбрала другой сайт.

Сертификат выпущен не на тот hostname

Сертификат может быть корректным для example.com, но не содержать www.example.com. Или сервер вообще отдаёт сертификат другого virtual host. В обоих случаях браузер покажет ошибку имени.

Проверяйте SAN сертификата и конкретный hostname, который открыт в браузере.

Connection refused и timeout на 443

Если TLS-соединение даже не начинается, сначала бессмысленно разбирать сертификат. Нужно проверить:

  • слушает ли сервер порт 443;
  • открыт ли порт в firewall;
  • есть ли HTTPS-конфигурация для домена;
  • не ограничен ли доступ к origin по IP.
Симптом Где искать Проверка
TLS-соединение не начинается 443, firewall, веб-сервер ss -lntp, curl, правила firewall
Сертификат чужого домена SNI / default HTTPS vhost openssl s_client
Сертификат правильный, страница чужая Virtual host / DocumentRoot Nginx/Apache-конфигурация
Сертификат не покрывает www SAN сертификата Проверить имена в сертификате
Сертификат просрочен SSL-конфигурация Проверить срок действия и установленный файл

curl -k не подтверждает исправность SSL. Опция отключает проверку доверия к сертификату. Она пригодна для диагностики, но финальный тест HTTPS должен проходить без -k.

Если по HTTP всё хорошо, а на HTTPS внезапно появляется другой сайт, это очень полезный симптом. Сеть работает, IP правильный, но запрос упирается в конфигурацию 443-го порта. Круг поиска сразу сужается.

Как hosts работает с Cloudflare, CDN, IPv6 и балансировщиками

При Cloudflare, CDN или внешнем балансировщике нужно сначала решить, что именно тестируется: новый origin или вся публичная цепочка. Запись hosts на IP origin обычно отправляет запрос непосредственно на сервер и обходит edge-инфраструктуру.

Cloudflare через hosts обычно обходится

Если публичный DNS домена проксируется через Cloudflare, посетитель обычно соединяется с edge-узлом Cloudflare. Но если в локальном hosts указать IP origin:

203.0.113.25 example.com

браузер будет пытаться соединиться напрямую с 203.0.113.25. Это хорошая проверка самого origin: Nginx, PHP-FPM, WordPress, базы, SSL и virtual host.

Но это проверка origin, не Cloudflare.

Origin может не принимать прямые подключения

Некоторые серверы настроены так, чтобы принимать HTTP/HTTPS только от IP Cloudflare или другого reverse proxy. Тогда прямой запрос через hosts может получить 403, timeout или блокировку firewall, хотя production через Cloudflare работает нормально.

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

Cloudflare Origin Certificate может не пройти браузерную проверку

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

Здесь нужно различать два сценария:

  • проверяется обычный публично доверенный сертификат на origin;
  • проверяется origin, который в production должен принимать TLS только от Cloudflare.

Во втором случае прямой браузерный тест не воспроизводит production полностью.

IPv4 и IPv6 нужно проверять отдельно

Если у домена есть A и AAAA, после миграции можно получить неприятное расхождение: IPv4 уже смотрит на новый сервер, а IPv6 остаётся старым.

Проверка IPv4:

curl -4 -v https://example.com/

Проверка IPv6:

curl -6 -v https://example.com/

Если -4 работает, а -6 уходит не туда, проблема локализована. Не нужно отключать IPv6 целиком — нужно разобраться с AAAA и адресацией нового сервера.

Балансировщик и несколько backend-серверов

Если production-домен работает через Load Balancer, а в hosts вы прописали IP конкретного backend, тестируется только этот узел. Балансировка, health checks и распределение запросов между остальными backend остаются за рамками проверки.

Что проверяется Что показывает hosts
Origin Nginx/Apache Проверяет хорошо
WordPress/PHP на origin Проверяет хорошо
SSL на origin Проверяет, но нужно учитывать тип сертификата
Cloudflare edge Обычно обходится
WAF на edge Не проверяется полностью
Load Balancer Не проверяется, если hosts указывает прямо на backend
Глобальная DNS-цепочка Не проверяется
IPv6 Нужно проверять отдельно

На сложной инфраструктуре фраза «через hosts всё работает» означает только то, что проверенный маршрут работает. Она не означает автоматически, что после смены DNS будет исправна вся цепочка от пользователя до origin.

Когда проверку через hosts можно считать завершённой

Главная страница WordPress открылась с нового IP — этого недостаточно. Перед сменой DNS нужно проверить сервер, сам сайт и сетевой маршрут отдельно. Главная может сидеть в кеше и выглядеть идеально, пока /wp-admin/ уже отдаёт 500 или форма не записывает данные в базу.

Проверка сервера

  • домен попадает в нужный Nginx/Apache virtual host;
  • DocumentRoot указывает на новую копию;
  • PHP выполняется без критических ошибок;
  • WordPress подключается к правильной базе;
  • тестовые запросы появляются в access.log;
  • error.log не заполняется новыми критическими ошибками при обычной работе.

Если главная страница открывается, а /wp-admin/ отвечает 500, миграция не закончена. Внешне сайт может выглядеть рабочим, но динамическая часть уже сломана.

Проверка самого сайта

Для обычного WordPress откройте не только главную, но и несколько страниц разных типов:

  • главную;
  • несколько внутренних страниц;
  • запись блога;
  • wp-admin;
  • авторизацию;
  • форму обратной связи;
  • страницу с загрузкой изображений и CSS/JS;
  • 404;
  • URL с редиректом;
  • REST API, если сайт его использует.

Для WooCommerce тест шире:

  • каталог;
  • карточка товара;
  • вариативный товар, если он есть;
  • корзина;
  • AJAX-обновление корзины;
  • личный кабинет;
  • checkout до безопасного этапа без реального списания;
  • письма и callbacks — отдельной проверкой, если они участвуют в сценарии.

Проверка редиректов и HTTPS

Обязательно пройдите варианты:

http://example.com/
http://www.example.com/
https://example.com/
https://www.example.com/

Нужно понять, какой адрес считается каноническим и куда ведут остальные. Если один hostname забыли в hosts, ошибка проявится именно здесь.

Полную цепочку можно посмотреть через:

curl -IL http://example.com/

Проверка сети и инфраструктуры

  • IPv4 идёт на ожидаемый сервер;
  • AAAA проверена отдельно, если используется IPv6;
  • понятно, что именно обходит hosts при наличии Cloudflare/CDN;
  • если используется балансировщик, проверка конкретного backend не принимается за проверку всей группы;
  • внешние webhooks и callbacks протестированы отдельно.

Финальный критерий готовности к смене DNS

Можно переходить к публичным A/AAAA-записям, когда новый IP подтверждён через фактическое соединение, нужный virtual host отдаёт правильный сайт, HTTPS работает без диагностических обходов, WordPress проходит динамические проверки, а server logs не показывают критических ошибок во время теста.

После завершения тестирования удалите временные строки из hosts и ещё раз откройте домен. Компьютер должен вернуться к обычному разрешению имени через DNS. Это отдельная проверка, а не формальность: забытая запись способна месяцами скрывать от администратора реальное состояние публичного DNS.

Только после этого меняются A/AAAA-записи и начинается уже другая диагностика — публичный DNS, реальный пользовательский трафик, Cloudflare/CDN и внешние интеграции. До этого момента задача hosts одна: доказать, что новый сервер готов принять домен до того, как на него придут посетители.

Вопросы и ответы
Да. Добавьте домен и IP нового сервера в локальный файл hosts. Изменение затронет только устройство, где отредактирован hosts.
nslookup может обращаться напрямую к DNS-серверу и не учитывать hosts так, как обычные приложения. Для проверки сайта лучше дополнительно смотреть фактическое соединение через curl.
Да. example.com и www.example.com — разные hostname. Если сайт редиректит на www, а записи для него нет, следующий запрос может уйти на старый сервер.
Да. При обращении к домену браузер и curl используют настоящий hostname и SNI, поэтому можно проверить сертификат и HTTPS virtual host нового сервера.
hosts меняет локальное разрешение имени для приложений устройства, а curl --resolve принудительно направляет только конкретный запрос curl на заданный IP.
Потому что hosts действует только на вашем устройстве. Внешний сервис использует собственный DNS и продолжит видеть публичный IP до изменения DNS.
Да. Если A уже указывает на новый сервер, а AAAA остаётся старой, часть запросов может идти по IPv6. Сравните curl -4 и curl -6.
Рекомендуемые статьи

Реквизиты:


Украина, 61202, Харьков, пр. Людвига Свободы 26/298.
ФО-П Харитинов Виталий Сергеевич
IBAN: UA903052990000026009005902765
МФО 305299
ИНН 2743208017
ПАТ КБ "ПриватБанк"
mail:

Документы:


Свидетельство плательщика единого налога

Свидетельство о регистрации

Служба поддержки:


  + 380 57 7209279
   создать тикет
© 2008 - 2026 Ukr Sky. All rights reserved