我有一个服务器托pipe几个网站。
我经常在第二台服务器上迁移网站以获得最新的硬件和软件。
第二个服务器具有不同的IP,这会导致不使用我的域名服务器(及其自动更新的DNS区域)的任何用户必须手动更新IP(例如,如果用户正在使用cloudflare)
你能想到任何方式我可以更新我的硬件和软件,而不必使用不同的IP?
有几种方法可以解决这个问题。 他们都可以使用虚拟机进行testing。
最简单的就是使用DNS。 DNS的创build完全是为了隐藏您的IP发生的事情。 IN CNAME所有网站(www.example-site1.com)中使用IN CNAME ,为主机使用IN A (例如myserver.example.com)。 要进行迁移,请准备一台与旧版服务器同步的新服务器。 确保所有网站在新的服务器上正常工作。 使用rsync作为网页。 如果你正在运行一个MySQL,那么你在新服务器上创build一个MySQL从服务器。 在迁移期间,停止应用程序(apache,tomcat …),然后更改数据库的angular色,以便新服务器成为MySQL主服务器。
你可以交换IP,但你必须小心。 如果您有带外pipe理(LOM,ILOM,BMC,IPMI),则可以使您的工作更轻松。
您可以使用虚拟化,您可以停止旧VM,并使用新IP启动新VM。
您可以使用负载均衡器或反向代理(由TheFiddlerWinsbuild议)来保存您的公共IP,并且您将在内部使用不同的IP用于Web服务器,并在负载均衡器/反向代理中进行交换。 请参阅: http : //www.apachetutor.org/admin/reverseproxies和http://www.cisco.com/en/US/products/hw/contnetw/ps792/index.html
如果你有一个防火墙,你可以做DNAT和dynamic地“更改”IP。
你想最终让他们指向新的IP? 您可以使用ProxyPass /oldpath http://newsiteIP/newpath/来获取特定位置
或只是redirect整个网站
<VirtualHost Oldsite:80> Redirect Permanent / http://newsiteIP/newpath/ </VirtualHost>`
这将给浏览器一个303,这将允许你改变“老站点”的DNS指向新的位置(通过IP),只要人们正在解决旧IP。 最终每个人都将解决新的IP(假设你改变了DNS),你可以完全从旧主机中删除。