Найкращий спосіб змінити IP-адресу сайту - з точки зору кінцевого користувача?


10

Я прочитав купу відповідних запитань тут, але я все ще не впевнений, що найкраща відповідь.

Я переміщую пару сайтів з IP-адреси "1.abc" на "2.def". Наразі в існуючій DNS я встановив всі TTL на 300 секунд, і у мене є нова зона DNS, готова до використання (на AWS Route 53), з новими серверами імен та всіма TTL на 60 секунд. Тож я вважаю, що я готовий з точки зору DNS. Після переїзду через кілька днів я встановлю TTL на більш розумні цифри на маршруті 53.

Я попередив усіх своїх користувачів про переїзд, і у мене є визначене вікно часу для переїзду. Я сказав їм, що як тільки переїзд завершиться, і якщо 24 години минули, і вони все ще бачать старі (заблоковані) сайти, вони повинні перезавантажити комп’ютер, щоб змусити локальний кеш-пам'ять DNS.

Я не розумію, як браузер (кеш) користувача відіграє певну роль у цьому. Мої власні експерименти з локальним файлом хостів (Win7) говорять мені про те, що в браузері є щось, що не дозволяє старій IP-адресі йти - мені довелося перейти в історію-> очистити все , щоб відобразити нове місцезнаходження сайту вгору, навіть післяipconfig /flushdns

(EDIT) - У мене немає кореневого доступу до старого сервера, тому я не можу реалізувати прийняту відповідь на це питання .

Запитання: Я дійсно не хочу, щоб мої користувачі мали справу з цим, тому чи можу я щось зробити, щоб змусити всіх браузерів повторно кешувати? І якщо так, то як довго я залишати його увімкненим?

Дякую...


My own experiments with a local hosts file (Win7) tell me there is something about the browser that is not letting the old IP address goЧи можете ви надати трохи інформації про це? Але, браузери не кешують записи DNS більше 1 хвилини.
Танмай

Не впевнений, але після декількох ipconfig / flushdns та "ctrl-F5" (у Firefox) я продовжував отримувати суміш сторінок як зі старого, так і з нового сайту ... нарешті довелося очистити "все" та перезапустити браузер. Я не хочу, щоб мої користувачі мали подібне робити
CC

JBTW, рішення у наданому вами посиланні також може працювати, якщо у вас є кореневий доступ до нового сервера. Оновіть записи DNS і перенесіть увесь трафік з нового сервера на старий, поки DNS не розповсюдиться належним чином.
Танмай

дякую ... але тоді мені доведеться пізніше знову синхронізувати старе з новим (бази даних тощо), ні?
КК

Вам доведеться синхронізувати базу даних один раз, безпосередньо перед відключенням переадресації.
Танмай

Відповіді:


15

Ні, ти не можеш. Проблема полягає в тому, що відповідь DNS можна кешувати в будь-якому місці між користувачем та сервером DNS, і немає можливості їх визнати недійсним.

Що ви можете зробити, але як тільки у вас синхронізуються дані, і ваш другий сайт буде готовий, ви можете перенастроїти оригінальний сервер, щоб він був проксі-сервером і передавав усі запити на нове місце.

Таким чином, ви можете досягти майже 0 секунд простою вашого веб-сайту.

Оновлення

Якщо у вас немає кореневого доступу, є кілька варіантів:

  • Виконуйте проксі в PHP

  • Налаштуйте проксі-сервер на другому сервері (якщо у вас є кореневий доступ до нього), перемкніть DNS і коли ви готові змінити проксі-сервер на веб-сервер

  • Цей метод може бути джерелом проблем. Майте 2 адреси (www.domain.tld та www2.domain.tld). Налаштуйте www2 (що таке саме як www) та встановіть правильні записи DNS. Потім підготуйте веб-версію свого веб-сайту та робіть комутацію DNS. Встановіть переадресацію всіх запитів на старому сервері на субдомен www2.


Ви б не хотіли трохи розширити це питання, або вказівник на статтю чи Q / A, які я міг прочитати? У мене немає кореневого доступу до існуючого сервера, тому я не можу безпосередньо маніпулювати таблицями IP ... так що, можливо, існує альтернативний спосіб?
СК

@CC, можливо, у вас є доступ до заміни вашої програми на екземпляр HAProxy? Або замінити код програми іншим, що суто пересилає запит на новий сервер?
Джейсон Мартін

@JasonMartin - У мене є доступ до .htaccess та коду програми. Так, так, я, мабуть, міг захопити запитувану URL-адресу та переслати на нову IP-адресу - можливо, я повинен спробувати це?
КК

@CC, це звучить перспективно. DNS - це "врешті-решт" інструмент, і деякі DNS-сервери встановлюють підлоги у своєму TTL і ігнорують ваші 300. Якщо ви хочете уникнути будь-яких перерв там, найкраща ставка проксі-сервера.
Джейсон Мартін

4

Теоретично встановлення TTL домену на щось низьке і очікування, що відбудеться зміна, а потім зміна IP-адреси, повинно призвести до майже прозорої міграції. Зрештою, у цьому вся суть TTL, яку можна налаштувати.

На практиці люди неправильно налаштовують речі та інструменти ламаються. Ось чому вам може знадобитися дати інструкції своїм користувачам, щоб очистити їх локальний кеш, якщо все не працює.

Ти нічого поганого не робиш.


Чи слід негайно перейти на новий AWS Route 53 DNS - зі старою IP-адресою - тоді після завершення міграції просто змініть IP-адресу на нову? - або просто змінити DNS на новий і змінити IP одночасно?
КК

1
@CC: Я не адміністратор мережі, тому прийміть це з дрібкою солі (і я радий почути інакше від гуру ServerFault), але особисто рекомендую не змінювати обох відразу. Упорядкуйте свій DNS, а потім виконайте зміну IP-адреси та дозвольте новому DNS виконувати свою роботу, допомагаючи вам з останньою частиною.
Гонки легкості на орбіті

1
Ну я спробував експеримент. На одному сайті я заздалегідь змінив DNS години, потім пізніше змінив IP-адресу A. Працювали чудово. Інший сайт я змінив обидва відразу. Він годинами лунав між старою / новою IP-адресою - я нарешті видалив зону AWS Route 53 і повторно зробив це так само, як і перший сайт. Працювали чудово. Тож жодної щіпки солі не потрібно - ви були на місці!
КК

1

Неминуче ваша стара адреса буде кешована і використовується довго - переважно ботами.

Як я це зробив:

  • Створіть, наприклад www2.yourdomain.com, запис A , вказуючи на новий IP. Цей запис раніше ніколи не використовувався; тому ніколи не кешовано.
  • Перенаправлення запитів на старий сервер на www2.yourdomain.com
  • Відстежуйте переспрямування, і коли трафік знижується до прийнятного рівня, видаліть старий сервер.
  • І нарешті, коли старий сервер буде видалений, переадресація www2.yourdomain.comна www.yourdomain.com.

Обов’язково використовуйте 301 постійні переадресації. https://en.wikipedia.org/wiki/HTTP_301


Моє відчуття кишки полягає в тому, що він не повинен використовувати 301 для першого раунду переадресацій, а лише для другого. Чи є якась конкретна причина, яку він повинен знати лише тому, хто має езотеричну оптимізацію SEO?
Випадково832

@ Random832 Постійний повідомляє користувачеві-агенту забути про стару URL-адресу і, наприклад, оновити закладки, щоб вказати на новий URL (тому наступного разу вони можуть отримати доступ до нового URL-адреса безпосередньо). Немає шкоди в тому, щоб перенаправити пізніше знову (або навіть повернутися до початкового URL-адреси). Тимчасове переспрямування з іншого боку, дозволяє користувачеві-агенту зберігати оригінальний URL-адресу (оскільки переспрямування може статися для іншої цілі або взагалі не бути наступним разом). Отже, з тимчасовими переадресаціями моніторинг переадресації ніколи не впаде до "прийнятного рівня".
Хаген фон Ейтцен

@HagenvonEitzen Це впаде до прийнятного рівня, оскільки браузери перестануть отримувати IP-адресу старого сервера для www.yourdomain.com, що є DNS-річчю, і на це не буде впливати тип переспрямування HTTP. І тому, що переадресація може статися ... зовсім не наступного разу ", тому точно так.
Випадково832

0

Здається, ви плануєте одночасно змінювати сервери імен? Завдяки способу виявлення серверів імен, оновлення потребує набагато більше часу, ніж звичайний запис - часто це становить приблизно 24 години або довше.

Я настійно рекомендую оновити DNS у вашого поточного постачальника перед тим, як змінити DNS, або змінити сервери імен за 7 днів до зміни IP-адреси веб-сайту.

Сучасні комп’ютери та браузери досить надійні в дотриманні TTL з DNS, але вам потрібно зрозуміти весь ланцюжок для найкращих результатів.


Дякую, і так, це відображає мій коментар під відповіді Легкості вище. Резолютори оновлювали сервери імен досить швидко - протягом декількох хвилин. Ключовим було зробити це спочатку, а потім почекати кілька годин, перш ніж змінити IP-адресу призначення. Обом одразу було погано ... дуже погано.
КК
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.