【问题标题】:What is the best way to move a large and complex site (which will need extensive testing) to a new server?将大型复杂站点(需要大量测试)迁移到新服务器的最佳方法是什么?
【发布时间】:2016-02-22 23:43:59
【问题描述】:

我们需要将一个大型而复杂的网站迁移到新服务器上,并且我们需要确保我们的会员的停机时间/中断时间最短。

这是我们的想法:

  1. 在新服务器上创建一个新域(例如 oursite.club),用于测试目的。 (我们计划这样做是因为适用于某些主机/网站的临时 URL 似乎不适用于我们的)

  2. 上传所有现有代码并将所有数据库导入新服务器。

  3. 在必要时进行任何更改以允许新的服务器路径/域名/不同的数据库名称。

  4. 彻底测试 .club 网站。

  5. 将当前活动域(例如 oursite.com)添加到新服务器作为 .club 域的别名。

  6. 一旦我们确信新站点可以正常运行,请将 .com 的 DNS 更改为指向新服务器。

  7. 此外,在旧 .com 站点上添加 htaccess 重定向以指向 .club 域上的同一页面,以便那些尚未为其传播名称服务器的成员仍然可以访问该站点。

在一切正常并且所有域名服务器都应该传播之后,我们希望将 .com 设为“真实”域,并可选择保留 .club 作为别名(即交换新服务器上的两个域)。

这是我们的想法:

  1. 从新服务器(即 .club)和别名域(即 .com)中删除附加域 - 但将所有代码/数据保留在原处。

    李>
  2. 重新添加 .com,但将其指向上传 .club 代码的服务器路径。

  3. 重新添加 .club,但作为 .com 的别名(或在我们的域名注册商处使用 URL 转发)。

  4. 确保一切正常。

  5. 更新旧服务器上的 htaccess 重定向以将 .com 流量发送到新服务器上的 .com 域,以防万一仍有任何名称服务器指向旧服务器。

由于这两个域的名称服务器已经指向新服务器,而且这不会改变,我们认为这将提供交换这两个域的最快方式。

我们已经对备用域和默认 WP 博客进行了一些测试,这似乎可行,但我们想在这里呼吁您的集体经验来提问:

A.这行得通吗?

B.如果没有,我们忘记考虑什么?

C.如果是这样,很好,但是有没有更好/更简单的方法来实现这一点(尤其是我们在新服务器上翻转两个域名以便当前 .com 域仍然作为主要使用的域)?例如,如果我们将 .com 添加到新服务器(而不是创建 .club)然后在测试期间编辑我们的本地主机文件,它会起作用吗?或者我们可以使用 VirtualHost 指令来帮助进行域交换?

尽管我们多年来一直在构建/运行网站,但这是我们第一次不得不迁移对业务至关重要的会员网站,任何过度停机/问题都会导致我们和/或我们的成员真正的问题。

非常感谢!

【问题讨论】:

    标签: dns migration


    【解决方案1】:

    我不确定我是否在这里遗漏了一些重要的东西(我不完全理解你需要在最后翻转域),所以我很可能会根据 cmets 等更改这个答案(或如果我完全错过了一点,请删除它!)

    我的做法是

    1. 将 www.example.com 的 DNS TTL 设置为一个非常低的数字,可能是 600 秒。在您当前的 TTL 到期之前(从您进行更改的那一刻起)不要计划移动
    2. 在新服务器上创建网站,在您的 example.club 域下配置站点 example.com
    3. 使用服务器的 IP 地址和 www.example.com 配置测试机器上的 hosts 文件,这样您的测试机器将实际测试 example.com 的完整结构。
    4. 如果您担心指向新域的链接断开,请针对 example.club 进行测试,但由于这只是暂时的,因此应该无关紧要。
    5. 当它经过测试并且您确信它可以正常工作时,请切换 DNS。
    6. 一旦您对一切都按预期工作感到满意,请将您的 DNS TTL 重置为更合理的数字。

    只要您的数据库是同步的,停机时间就会最短(如果有的话),最后您可以简单地删除 example.club 引用而不会产生任何影响。

    根据站点的价值和潜在停机时间的影响,可能值得在两个站点之间放置一个负载平衡器,并逐渐增加发送到新站点的流量,以便您监控进度。 (你可以使用 Azure 的负载均衡器,它对外部站点的使用没有限制)

    【讨论】:

    • 迈克尔,感谢您抽出宝贵时间回复。你已经很好地理解了我们需要什么,而且你提议的一系列行动似乎是可行的,在大多数情况下。例如,我们当前的网络主机不允许我们更改 TTL(他们也不会为我们这样做,因为我们目前处于共享主机计划中),这很遗憾。我们实际上并没有计划在完成后拥有两个站点实例(第二个域只是我们测试时的临时措施),但如果我们这样做了,那么负载均衡器的想法是一个不错的选择一,非常感谢您的参考。
    猜你喜欢
    • 1970-01-01
    • 2015-08-02
    • 1970-01-01
    • 2019-11-18
    • 2010-10-11
    • 2017-04-02
    • 2021-06-14
    • 1970-01-01
    • 2010-09-13
    相关资源
    最近更新 更多