我已经inheritance了一个内部网站,每天都有数百个不同的用户受到攻击。 他们都知道如何到达页面,只需键入http:// oldservername / site并享受即可。 我们已经把网站移到了新的服务器上,一切都很好。 问题是,旧的服务器正在退休,他们希望尽快做到这一点。 build立这个网站并运行它的那个人应该是在三月份完成这个工作的,但是直到他离开公司,现在pipe理人员都因为截止date而closures了我。
这是我的困境。 如果我们closures了旧的服务器, http:// oldservername / site (这个网站已经被加了书签并且已经运行了10多年,并且被列在各种随机文件和SOPS中),不再有效。 他们将不得不使用http:// newservername / site来访问相同的页面。 我告诉pipe理员这是非常不理想,并要求一些DNS爱,并得到closures。
他们不想cname,他们不希望一旦新的服务器部署就离开旧的服务器,他们并不在乎,因为这应该在三月份完成。
我刚刚在这个星期发现了这件事情,并不是一个select。 所以没有一个cname,旧的服务器仍然运行一个警告页面和redirect,或时间机器,我的select是什么?
正确的解决scheme是获取CNAME。 这是DNSdevise的目的。 在这种情况下,购买甜甜圈,在电话里向人们大喊大叫,去找经理人都是合适的行为。
如果这不是一个选项(我不知道我能接受,但我会尝试继续前进)。 我唯一的策略是创build一个脚本,添加一个条目到用户主机文件。 这实质上会覆盖DNS服务器。 如果你对任何机器都有pipe理控制权,那么你可以简单地把它放在主机文件上。 关于hosts文件的一些信息可以在http://www.howtogeek.com/howto/27350/beginner-geek-how-to-edit-your-hosts-file/find。
如果您对用户计算机没有pipe理员权限,则可以使用下载链接replace旧服务器网站上的主页并运行脚本。 这听起来像你已经有一个计数解决scheme,但如果没有添加一个计数器,旧网站,所以你可以看到,更重要的是与你的老板沟通,如果closures机器有多less用户会受到影响。 我也会尝试获取旧的服务器名称replace为新的所有文档。
这最终会导致很多工作的支持。
您可以使用转发stream量,等待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
但最终的解决scheme是更改DNS并在旧服务器上使用永久移动301
.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]
等到你的脚触及你的胡须,告诉你所有的游客正在改变他们的书签