В настоящее время у меня зарегистрировано доменное имя для сервера Linux / Apache, которое я собираюсь заменить другим на новом IP-адресе.
Перенос данных будет относительно быстрым, и 5-минутный перерыв в этом процессе допустим.
Запись DNS имеет TTL с 6-12 часов, что я не могу ускорить.
Каковы возможные последствия этого изменения? Предположительно пользователи, которые все еще смотрят на старый адрес, будут продолжать использовать старый сервер, в то время как пользователи, у которых DNS-кэш истек или пуст, увидят новый домен.
Можно ли сделать какое-то перенаправление со старого сервера (с Apache или iptables) на новый IP? Старый сервер может продолжать работать столько, сколько необходимо.
Ответы:
Вы можете использовать обратный прокси на старом веб-сервере. Для настройки может потребоваться немного усилий, но, пока ITS DNS обновлен, у вас все будет в порядке.
Что произойдет, это:
Если вы используете Apache, посмотрите на mod_proxy. Если вы используете IIS, изучите ISAPI Rewrite, чтобы получить такую функциональность.
(обратите внимание, что DNS на старом веб-сервере должен быть обновлен, если вы хотите использовать прокси-сервер, используя доменное имя. В противном случае, прокси-сервер напрямую подключается к IP-адресу и убедитесь, что хост прослушивает IP без имени хоста)
источник
/etc/hosts
123.456.789.12 my.domain.com
только ваш старый веб-сервер узнал об обновленном адресе. Когда клиент обращается к старому веб-серверу (поскольку у него нет обновленного DNS), веб-сервер может прокси-запрос с использованием доменного имени. Я не использую Apache, но вот пример Nginx: gist.github.com/scragg0x/738f144b33d17ef763d1Моя компания только что сделала это с несколькими большими веб-сайтами. Основная процедура, которой мы следовали, была:
Для Apache вам, вероятно, следует использовать mod_rewrite для перенаправления, чтобы вы могли сохранить URI, запрошенные клиентом. Простая реализация будет:
Это сделает временный редирект 302 для www.domain.com/anything на www-new.domain.com/anything. Вы хотите, чтобы он был временным, потому что вы, вероятно, хотите, чтобы поисковые системы индексировали только www.domain.com, а не www-new.domain.com.
После того, как изменение DNS для www.domain.com распространилось к вашему удовлетворению, вы можете либо полностью сбросить www-new, либо осторожно облегчить кому-либо его использование обратно на www с другим перенаправлением. Это почти тот же процесс, что и выше; настройте старый сервер для обработки www-new, измените DNS на www-new, чтобы он указывал на старый сервер, и настройте перенаправление на старый сервер, отправляющий трафик www-new на www:
На этот раз вы хотите сделать постоянное перенаправление 301, чтобы снова указать сканерам поисковых систем, что www.domain.com - это сайт, который вы хотите, чтобы они проиндексировали.
источник
Хорошо, основываясь на том, что рекомендовал @Farseeker, я установил следующую конфигурацию на старом сервере Apache для пересылки запросов на новый сервер:
Чтобы убедиться, что старый сервер имел правильный адрес, я поместил запись в
/etc/hosts
:Я также должен был включить Apache
mod_proxy
иmod_proxy_http
модули и перезагрузить конфигурацию:источник
Это старая ветка, но, возможно, она кому-нибудь поможет:
В дополнение к ответам Марка Хендерсона (mod_proxy) ИЛИ James Sneeringer (перенаправление 302,301 на новые субдомены), можно добавить еще одну вещь относительно синхронизации базы данных при перемещении больших приложений.
Если ваш веб-проект использует базу данных (например, MySQL), перед переключением DNS убедитесь, что приложения (например, PHP) с обоих серверов подключаются к одной и той же базе данных. Таким образом, чтение и запись идут в одно и то же место, и вам не нужно иметь дело с различными инструментами синхронизации БД после этого.
Это (скорее всего) повлияет на время загрузки на одном сервере, но для периода переключения это может быть принято.
В случае, если сервер БД недоступен извне, вы также можете настроить mysql_proxy на веб-сервере, который имеет к нему доступ и доступен с внешних IP-адресов.
источник
Я использую iptables для этого, когда мне нужно это сделать; немного DNAT / SNAT, и весь ваш трафик волшебным образом появляется там, где и должен быть. Если у вас есть реальная необходимость поддерживать исходные IP-адреса, обратный прокси-сервер может помочь, установив соответствующие заголовки, но для этого нужно много пощечин на обоих концах, чтобы убедиться, что все совпадает, поэтому я обычно не беспокоюсь об этом для чего-то вроде миграции, поскольку она временная, и снижение TTL обрабатывает большую часть этого.
источник