为什么nginx需要一个auth_http条目的smtp反向代理?

我通常是一个Apache用户,但我需要开始使用nginx作为smtp(后缀)的反向代理

我在网上看过几十个例子。 像这样和这个 。 他们都有一个auth_http条目,我完全不明白。 这不是我第一次使用代理,而且我目前使用haproxy已经有几个月了。 那么,为什么我必须提供一个PHP身份validation页面? 为什么我不能像使用haproxy一样简单地使用nginx,只要告诉它:在这里设置一个前端,用这个密钥解密ssl,并把它带到后端/端口?

有人可以解释auth_http条目是多么必要吗? nginx手册似乎不太多。

感谢您的努力。

基本上,您的工作stream程中有三大步骤

  • encryption和解密过程由STARTTLS或SMTPS
  • 身份validation过程,即检查您是否允许执行SMTP事务
  • SMTP转录(MAIL FROM,RCPT TO等)

据我所知,你想用nginx做第1步,并透明地将其余的事务传递给后端。 不幸的是,你不能用nginx做它的devise。 在将请求传递给后端之前,Nginx始终执行第1步和第2步。

这就是为什么参数auth_http变得至关重要。 基本上nginx从SMTPauthentication过程中获取用户名和密码,通过协议传递给auth_http URL。 它期望响应有关身份validation状态(是否可以继续事务)以及SMTP数据应传递到哪个地址和端口。

所以,如果你只需要一些SSL的脱衣舞代理SMTP,那么也许nginx将不适合你的情况。