
Я унаследовал интранет-сайт, на который заходят сотни разных пользователей в день. Они все знают, как попасть на страницу, просто введитеhttp://oldservername/siteи наслаждайтесь. Мы перенесли сайт на новый сервер, и все хорошо. Проблема в том, что старый сервер уходит на пенсию, и они хотят сделать это как можно скорее. Парень, который создал сайт и управлял им, должен был сделать это в марте, но отложил это, пока не ушел из компании, и теперь администраторы надоедают мне из-за дедлайнов.
Вот моя дилемма. Если мы закроем старый сервер,http://oldservername/site(сайт, который все добавили в закладки и который работает уже более 10 лет и указан во всех видах случайной документации и SOPS), больше не работает. Им придется использоватьhttp://newservername/siteчтобы попасть на ту же страницу. Я сказал администраторам, что это далеко от идеала, и попросил немного DNS-любви, но меня отключили.
Они не хотят использовать cname, не хотят оставлять старый сервер включенным после развертывания нового сервера, и их это не особо волнует, поскольку это должно было быть сделано еще в марте.
Я только на этой неделе узнал обо всем этом, и вернуться назад во времени не получится. Так что без cname, старый сервер все еще работает со страницей предупреждения и перенаправлением или машиной времени, какие у меня есть варианты?
решение1
Хорошее решение
Правильное решение — получить CNAME. Именно для этого и предназначен DNS. Покупка пончиков, крики на людей по телефону и поход к менеджеру — все это подходящие действия в этом случае.
Плохое решение
Если это не вариант (я не уверен, что могу принять это, но я попробую двигаться дальше). Моя единственная стратегия — создать скрипт, который добавляет запись в файл хоста пользователя. Это по сути переопределит DNS-сервер. Если у вас есть административный контроль над любой из машин, вы можете просто переписать или добавить в файл хоста. Немного информации о файле хостов можно найти наhttp://www.howtogeek.com/howto/27350/beginner-geek-how-to-edit-your-hosts-file/
Если у вас нет прав администратора на компьютерах пользователей, я бы заменил домашнюю страницу на старом сайте сервера ссылкой для загрузки и инструкциями по запуску вашего скрипта. Похоже, у вас уже есть решение для подсчета, но если нет, добавьте счетчик на старый сайт, чтобы вы могли видеть и, что еще важнее, сообщать своим начальникам, сколько пользователей пострадает, если машина будет отключена. Я бы также попытался получить всю документацию, в которой старое имя сервера заменено на новое.
В конечном итоге это приведет к большому объему работы по поддержке.
решение2
Вы можете использовать прямой трафик, ожидая распространения DNS
выполнить на старом сервере
echo 1 >/proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination IPNewServer
iptables -t nat -A POSTROUTING -p tcp -d IPNewServer --dport 80 -j MASQUERADE
но окончательное решение — сменить DNS и использовать 301 Moved Permanently на старом сервере
.htaccess:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^oldservername/site [NC,OR]
RewriteCond %{HTTP_HOST} ^www.oldservername/site [NC]
RewriteRule ^(.*)$ http://newservername/site/$1 [L,R=301,NC]
и ждет, пока ваша нога не коснется вашей бороды, чтобы сообщить вам, что все посетители меняют свои закладки