Назад |
Перейти на главную страницу
Смена веб-сервера с минимальным временем простоя
У меня работает веб-сервер. Его IP-адрес 111.111.111.111, и он упоминается как ServerA. Помимо хранения файлов сценариев, сервер также хранит файлы, загруженные пользователем, и имеет базу данных. Приложение использует поддомены с подстановочными знаками, где foo.example.com, bar.example.com и т. Д. Переходят на общий виртуальный хост, и код сервера отвечает соответствующим образом с учетом имени поддомена. У меня есть регистратор домена, указывающий на IP 111.111.111.111, а также настроенный для поддержки подстановочных знаков.
Мне нужно будет заменить веб-серверы на новый сервер с IP 222.222.222.222, который называется ServerB.
Какие шаги нужно предпринять, чтобы мигрировать серверы с минимальным временем простоя?
Ниже мои первые мысли. Прокомментируйте, если я ошибаюсь или мне не хватает шагов.
- Опубликуйте на ServerA уведомление о том, что система будет отключена для обслуживания.
- Настройте Apache на ServerB аналогично настройке на ServerA, а также добавьте еще один виртуальный хост на ServerB с именем ServerName 222.222.222.222 (подробнее об этом позже).
- Настройте Apache на ServerA так, чтобы вместо доступа к сценарию приложения отображалась страница остановки для обслуживания.
- Скопируйте файлы сценариев, загруженные пользовательские файлы и базу данных с ServerA на ServerB.
- Измените регистратора домена так, чтобы он указывал на IP 222.222.222.222.
- Настройте Apache на ServerA для перенаправления всех запросов на IP 222.222.222.222. Как это будет работать с требованиями к субдоменам?
- Подождите, пока изменения доменного имени распространятся. Я не буду в это время?
- После того, как ServerB будет полностью протестирован, отмените тарифный план для ServerA.
Как насчет нуль простой перенос?
Это мой общий план таких миграций:
- Настройте специальный VPN между старым и новым сервером (например, с помощью OpenVPN).
- Скопируйте все приложение со старого сервера на новый.
- Настройте репликацию базы данных между старым сервером и новым сервером, со старым сервером в качестве главного, а новый сервер в качестве подчиненного, через VPN.
- Подождите, пока все базы данных будут реплицированы. Это может занять некоторое время.
- После завершения репликации подключитесь напрямую к новому серверу (используйте трюк / etc / hosts) и убедитесь, что приложение работает, веб-сервер настроен правильно и т. Д.
- Разорвите отношения «главный / подчиненный» и настройте приложение на старом сервере для взаимодействия с базой данных на новом сервере через VPN.
- Измените записи DNS. В ожидании истечения срока жизни некоторые пользователи будут подключаться к старому серверу, а некоторые - к новому, но оба будут использовать базу данных на новом сервере.
- Когда TTL истечет и старый сервер перестанет получать трафик, выведите его из эксплуатации. Отключите временный VPN.