У меня есть сервер, на котором размещено несколько сайтов.
Время от времени я переношу веб-сайты на второй сервер, чтобы получить новейшее оборудование и программное обеспечение.
Второй сервер имеет другой IP-адрес, и это вызывает проблему, заключающуюся в том, что любой пользователь, не использующий мои серверы имен (и их автоматически обновляемые зоны DNS), должен вручную обновить IP (например, если пользователь использует cloudflare)
Можете ли вы придумать, как я могу обновить свое оборудование и программное обеспечение, не используя другой IP-адрес?
Есть несколько способов подойти к этой проблеме. Все они вы можете протестировать на виртуальных машинах.
Самый простой - использовать DNS. DNS был создан именно для того, чтобы скрыть то, что происходит с вашим IP. Использовать IN CNAME
для всех веб-сайтов (www.example-site1.com) и IN A
для хоста (например, myserver.example.com). Чтобы выполнить миграцию, подготовьте новый сервер, синхронизируемый со старым. Убедитесь, что все сайты нормально работают на новом сервере. Использовать rsync
для веб-страниц. Если вы используете MySQL, вы создаете подчиненное устройство MySQL на новом сервере. Во время миграции остановите приложение (apache, tomcat ...), затем измените роли баз данных, чтобы новый сервер стал главным сервером MySQL.
Вы можете просто поменять IP-адреса местами, но будьте осторожны. Вы можете облегчить себе жизнь, если у вас есть внешнее управление (LOM, ILOM, BMC, IPMI).
Вы можете использовать виртуализацию, и вы можете остановить старую виртуальную машину и запустить новую виртуальную машину с новым IP-адресом.
Вы можете использовать балансировщик нагрузки или обратный прокси-сервер (как предлагает TheFiddlerWins), который будет хранить ваш общедоступный IP-адрес, а внутри вы будете использовать разные IP-адреса для веб-серверов и выполнять подкачку в балансировщике нагрузки / обратном прокси-сервере. Видеть: http://www.apachetutor.org/admin/reverseproxies и http://www.cisco.com/en/US/products/hw/contnetw/ps792/index.html
Если у вас есть брандмауэр, вы можете выполнять DNAT и «менять» IP на лету.
Вы хотите, чтобы они в конечном итоге указали на новые IP-адреса? Ты можешь использовать ProxyPass /oldpath http://newsiteIP/newpath/
для определенных мест
или просто перенаправьте весь сайт с помощью
<VirtualHost Oldsite:80>
Redirect Permanent / http://newsiteIP/newpath/
</VirtualHost>`
Это даст браузеру 303, это позволит вам изменить DNS для "oldsite", чтобы он указывал на новое местоположение (через IP), пока люди разрешают старый IP. В конце концов все перейдут на новый IP-адрес (при условии, что вы изменили DNS), и вы можете полностью удалить его со старого хоста.