将旧的服务器的HTTP请求转发到新的服务器

我正在将许多网站从旧的Web服务器迁移到新的网站。 这需要尽可能透明地完成。

这些网站由WCMS提供支持,因此客户有可能对其旧网站进行更改。 为了避免这种情况,我想在旧机器上设置一个TCP或HTTP代理,这个代理透明地转发到新机器上。 这将大大减轻处理DNS的压力,由于过去一些做得不好的决定,DNS本身将是一个巨大的工作。

我应该使用HTTP还是TCP代理,或者这只是一个不好的电话? 请注意,我基本上是自己处理几千个网站。

有几种方法可以做到这一点,可能会或可能不会在你的情况下工作,但这里有一个select:

  • 在新服务器上设置网站的副本,让网站所有者确认它们是正确的(通过新的或testingIP)
  • 如果你不能移动的IP地址,大约一天提前设置你的DNS的TTL真的很低,如5分钟
  • 在网站上运行robocopy以将所有内容推送到新服务器。 经常运行并在上线之前再次运行
  • 以确保您的用户不能写入到旧的位置,在最佳的非高峰时间在一个去的现场时间,停止在旧的服务器上的IIS
  • 做一个最终的robocopy确保新的服务器是100%最新的
  • 在新服务器上启动IIS并更新DNS或移动IP

您可以在旧服务器上设置redirect,而不是仅仅停止它,但需要redirect到另一个IP,因此并不总是很干净。 如果你认为你可以设置一个代理服务器,那么这个代理服务器不会受到任何伤害,但是当你停止站点,到最终的robocopy时,你仍然需要一些时间,然后开始新的站点。 否则,数据可能不同步。

如果您的网站所有者pipe理他们自己的DNS,并且您不能在同一时间全部截断,那么代理听起来不错。 如果你可以移动IP,你不需要担心代理,但是如果没有,那么HTTP代理可能就是一个好办法。

FWIW当我准备好接收邮件到新服务器时,我只是改变了防火墙上的NAT规则,将外部IP指向更新的内部IP。 快速,简单,而且最重要的是,如果我需要快速恢复,那么只需要几秒钟就可以完成更改。

如果您在两台服务器上都使用IIS(如果使用IIS 7+,甚至更好),则可以在旧服务器上设置一个转发规则,将所有通信转发到新的IP。 这可能不是很干净,因为用户可能会显示新服务器的IP地址。 另一个select是build立一个新的页面,在旧的服务器上发送所有的stream量,重写新IP的输出。 (即旧http://www.example.com IP = 0.0.0.1新的IP = 0.0.0.2,0.0.0.1有一个请求http://0.0.0.2/whatever的页面,并将该响应发送回用户)。 诀窍是将表单数据从一台服务器发送到另一台服务器。