Smtp
SMTP smarthost 循環平衡
我們的 SMTP 提供商要求在四個不同的主機之間平均分配電子郵件。我知道分配這種負載的標準方法是利用 DNS 循環功能,但問題是提供商的郵件伺服器應該使用符號名稱而不是 IP 來定址。處理這個問題的最佳方法是什麼?設置多個 CNAME 記錄是否有效,或者我應該使用任何內部 Sendmail/Postfix/Exim/etc 平衡功能(我目前不知道)?
你的供應商是個白痴。他們應該為您提供一個伺服器名稱以插入您的 MTA 並進行自己的負載平衡。我傾向於在我的
relayhost
指令中加入一個名字並完成它。您可以使用所有提供商機器的 A 記錄定義一個本地名稱(從解析他們給您的名稱中獲取),但是必須這樣做是沒有意義的,因為每次您的提供商決定添加更多伺服器時他們的集群你必須進行配置更改。
+1 表示“您的提供者是個白痴”。
不過,您可以通過在本地設置一些負載均衡器(例如 HAProxy)來解決其要求,該負載均衡器使用您提供商的智能主機作為後端。然後,您的伺服器會將他們的郵件定向到此負載均衡器。它不會嚴格基於電子郵件進行平衡,而是基於 TCP 連接。但我想這應該足夠好了,因為很難決定最後會生成多少個單獨的郵件(因為有多個收件人、郵件列表、別名……)
此外,當您的提供商的伺服器發生變化時,您只需要調整負載均衡器的配置,而無需觸及任何其他伺服器。
您可能需要考慮負載均衡器的高可用性,因為這將是單點故障。