我有一个托管多个网站的服务器。
我有时会在第二台服务器上迁移网站以获取最新的硬件和软件。
第二台服务器的 IP 不同,这会导致任何不使用我的域名服务器(及其自动更新的 DNS 区域)的用户都必须手动更新 IP(例如,如果用户使用 cloudflare)
你能想出什么方法我可以在不使用不同 IP 的情况下更新我的硬件和软件吗?
我有一个托管多个网站的服务器。
我有时会在第二台服务器上迁移网站以获取最新的硬件和软件。
第二台服务器的 IP 不同,这会导致任何不使用我的域名服务器(及其自动更新的 DNS 区域)的用户都必须手动更新 IP(例如,如果用户使用 cloudflare)
你能想出什么方法我可以在不使用不同 IP 的情况下更新我的硬件和软件吗?
你想让他们最终指向新的 IP 吗?您可以
ProxyPass /oldpath http://newsiteIP/newpath/
用于特定位置或者只是重定向整个网站
这将为浏览器提供 303,这将让您更改“旧站点”的 DNS 以指向新位置(通过 IP),只要人们正在解析旧 IP。最终每个人都会解析到新 IP(假设您更改了 DNS),您可以将其从旧主机中完全删除。
有几种方法可以解决这个问题。所有这些都可以使用虚拟机进行测试。
最简单的一种是使用DNS。DNS 的创建正是为了隐藏您的 IP 发生的事情。用于
IN CNAME
所有网站 (www.example-site1.com) 和IN A
主机(例如 myserver.example.com)。要进行迁移,请准备一台与旧服务器同步的新服务器。确保所有站点在新服务器上运行良好。用于rsync
网页。如果您正在运行 MySQL,那么您将在新服务器上创建一个 MySQL 从站。在迁移过程中,停止应用程序(apache、tomcat...),然后更改 DB 的角色,使新服务器成为 MySQL 主服务器。你可以只交换IP,但你必须小心。如果您有带外管理(LOM、ILOM、BMC、IPMI),您可以让您的生活更轻松。
您可以使用虚拟化,您可以停止旧 VM 并使用新 IP 启动新 VM。
您可以使用负载均衡器或反向代理(由 TheFiddlerWins 建议)来保存您的公共 IP,在内部您将为 Web 服务器使用不同的 IP,并在负载均衡器/反向代理中进行交换。请参阅: http: //www.apachetutor.org/admin/reverseproxies和http://www.cisco.com/en/US/products/hw/contnetw/ps792/index.html
如果您有防火墙,您可以执行 DNAT 并即时“更改”IP。