我目前正在实验室中测试冗余/负载平衡设置,其中 Keepalived 健康检查验证 Postfix 是否在 2 台服务器上运行。
虽然 Keepalived 运行良好,具有很好的收敛时间等等,但它在 SMTP 对话框中走得并不远,它只会执行 HELO,检查是否收到回复,仅此而已。
鉴于 Postfix 的复杂性,它可能会在协议对话的各个步骤中崩溃。是否可以告诉 Postfix 尽快崩溃,可能在对话中的 HELO 之前。当然,我确信我们不会涵盖这样做的所有场景,但在某些情况下,Postfix 可能会立即告知:我无法处理您的邮件,请离开。
例如,如果它有任何资源问题(分区已满、无法分叉等)。
有人知道如何配置 Postfix 来实现这样的效果吗?
感谢致敬,
答案1
Postfix 是一款抗错误软件。它会尝试从内部错误中恢复,并且主服务器本身通常不会死机。因此,单个错误/警告不会被视为终止触发器,Postfix 将继续运行。
如果您想在第一次出现错误/警告时终止 Postfix,则必须在 Postfix 之外执行此操作。查看日志文件中是否有您感兴趣的警告,然后发出“postfix stop”。在这种情况下,无法再尝试连接,甚至无法在端口 25 上进行服务器问候。请注意,重新激活 Postfix 系统的唯一方法是手动重新启动它。
但这种情况适得其反。您的目标是让两个 Postfix 运行,但您却心甘情愿地终止其中一个。第二个可能会超载并被终止。让 Postfix 自行恢复并通过计数日志警告(而不是失败的虚拟 SMTP 连接)来监控 Postfix 实例。
如果您不监控日志,您也无法识别诸如 DNS 解析、队列增加、连接耗尽等错误......