Я меняю серверы своего сайта. IP старого сервера нельзя перенести на новый. Чтобы не было простоев, я планирую сделать следующее, пожалуйста, подтвердите, что это будет работать:
Моя логика подсказывает мне, что когда я перенаправляю на новый IP-адрес из своего старого ящика, пользователь не увидит доменное имя в браузере, но увидит новый IP-адрес. Есть ли способ перенаправить на новый IP-адрес и отправить с ним HOSTNAME, чтобы пользователь увидел доменное имя в браузере?
Я делаю это, потому что сайт находится в постоянном использовании, и простое изменение настроек DNS не поможет, поскольку база данных не будет синхронизироваться между новым и старым серверами во время распространения.
Вот метод, который у меня сработал:
Вот как я бы сделал шаг 4:
Мы настроим IPTables на сервере Linux для перенаправления всего трафика, поступающего на порт 80 (который является портом веб-сервера по умолчанию), на сервер с IP-адресом. 122.164.34.240
. Первый шаг - настроить ваш Linux-сервер на такую пересылку. Откройте окно терминала, войдите в систему как пользователь root и выполните следующую команду:
# echo 1 >/proc/sys/net/ipv4/ip_forward
Следующим шагом будет указание IPTables перенаправить трафик на новый сервер:
# iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 122.164.34.240
Вот где происходит волшебство IPTables. На третьем и последнем шаге мы говорим IPTables переписать источник подключений к порту 80 нового сервера так, чтобы он выглядел как исходящий от старого сервера.
# iptables -t nat -A POSTROUTING -p tcp -d 122.164.34.240 --dport 80 -j MASQUERADE
Последний шаг необходим, потому что, если мы не сообщим веб-серверу нового сервера, что соединения поступают с клиентских машин, он будет думать, что они исходят от старого сервера.
Вы можете повторить это для баз данных и порта почтового сервера.
Вы также можете рассмотреть возможность добавления нескольких A-записей. Например, Google использует это, проверьте их вывод nslookup:
Name: google.com
Addresses: 209.85.148.101
209.85.148.102
209.85.148.113
209.85.148.138
209.85.148.100
209.85.148.139
Если вы добавите несколько A-записей в домен, посетители получат несколько IP-адресов и попробуют их в указанном порядке. Если одно не удается, клиент переходит к следующему, чтобы попробовать.
Настройте новый IP как дополнительную запись A за 24 часа до начала работы, запустите новый сервер, выключите старый, удалите IP.
Другой вариант - использовать VIP (виртуальный IP). Итак, ваши шаги будут:
Хорошо, поскольку вы упомянули о репликации базы данных, вам необходимо сделать следующее.
В rinetd.conf:
OLD_SERVER_IP 80 NEW_SERVER_IP 80
вы можете использовать HA-Proxy перед своими веб-серверами, когда один из них переходит в режим обслуживания, вторичный сервер берет на себя управление.
Ваш список того, что нужно сделать, выглядит вполне разумным.
В качестве примера, если вы используете apache, когда вы делаете что-то подобное в apache на старом сервере:
redirect permanent / http://newserver.example.com
Пользователь увидит новый домен в браузере, когда перейдет на старый сайт. В этом случае перенаправление также является постоянным, пока работает браузер.
Итак, если вы реализуете на своем веб-сервере какое-то перенаправление в дополнение к другим изменениям, все будет в порядке.