我目前在租用的 Windows 2003 Server VM 上运行 Windows SMTP 服务器。有时我的托管公司网络出现故障,我的客户无法通过我为他们提供的 SMTP 服务器主机(例如 smtp.mycompany.com)发送电子邮件。
我想提供一个故障转移解决方案,这样如果我的主 Windows 2003 SMTP 服务器发生故障,所有 SMTP 流量将自动转移到位于另一个数据中心的另一个托管 VM (smtp2.mycompany.com)。可以使用 Windows 完成此操作吗?我知道有 HA 代理和 Nginx,但处理 Linux 超出了我的能力范围 - 这是显而易见的,否则我不会问这样一个新手问题。:) 但是,我愿意租用处理故障转移的服务。谢谢。
答案1
您对这个问题想得太多了。DNS 已经为您提供了解决方案:多个 MX 记录。将 smtp2.mycompany.com 添加为您的域的另一个 MX 记录,但为其赋予比现有 MX 记录更高的优先级值。发件人通常会选择优先级较低的服务器。
我说一般是因为有些损坏的 MTA 会随机选择一个,而有些则只选择第一个。绝大多数损坏的 MTA 都是垃圾邮件发送者,因此这没什么损失。
但如果这些是用于处理外发电子邮件的内部电子邮件服务器,则 MX 记录对您无济于事。可能的选项包括:
- 负载均衡器(但这样并不能获得数据中心的生存能力,只能获得主机的生存能力)
- 基于 DNS 的故障转移(您必须等待 DNS 复制和客户端 DNS 缓存超时发生)
- DNS 负载平衡(您的客户端必须足够智能,才能在每次 SMTP 重试时重复 DNS 查询)