我使用透明模式的 haproxy 来平衡两个邮件服务器的负载。我发送邮件时遇到问题。接收方看到我们邮件服务器的 IP 是 haproxy 的 IP,而不是服务器本身的 IP。
我需要建议如何解决这个问题,因为其他邮件服务器阻止了我们的电子邮件,因为他们将其归类为垃圾邮件。
这是我在 haproxy 上的示例配置。
listen mail_smtp
bind 68.128.X.X:25
mode tcp
option tcplog
balance leastconn
source 0.0.0.0 usesrc clientip
server mail1 68.138.x.x:25 check port 80 inter 3s rise 2 fall 2
server mail2 68.138.x.x:25 check port 80 inter 3s rise 2 fall 2 backup
答案1
这就是 haproxy 的工作方式。您无法使用代理 IP 后面的主机的 IP。因此您甚至无法更改这一点。
您必须解决底层垃圾邮件问题。而“垃圾邮件发送者”的分类仅取决于 5% 的 IP。您真的认为使用 68.138.xx 而不是 68.128.XX 会改变垃圾邮件性质吗?
配置一切 - 就像没有 haproxy 时所做的那样 - 针对 IP 68.128.XX,您就大功告成了。DKIM、PTR 和 SPF 只是几个与 IP 相关的反垃圾邮件机制。
但真正的问题仍然是:为什么你需要一个 haproxy传出邮件?对于代理来说,这是错误的方向。你只需要代理即可传入邮件。
答案2
我有点迟到了,但如果你配置 haproxy 使用 send-proxy 指令,它看起来确实能够看到源 ip。从 1.5 版开始
看一下这个例子: https://www.haproxy.com/blog/preserve-source-ip-address-despite-reverse-proxies/