The Quantum Physicist Asked: 2016-05-09 04:51:40 +0800 CST2016-05-09 04:51:40 +0800 CST 2016-05-09 04:51:40 +0800 CST 为什么 nginx 需要一个 auth_http 条目来进行 smtp 反向代理? 772 我通常是 apache 用户,但我需要开始使用 nginx 作为 smtp(后缀)的反向代理。 我在网上看过几十个例子。像这样和这样。他们都有一个auth_http条目,我完全不明白。这不是我第一次使用代理,几个月以来我一直在使用haproxy。那么我为什么要提供一个php认证页面呢?为什么我不能像使用 haproxy 一样简单地使用 nginx,然后告诉它:在这里设置一个前端,用这个密钥解密 ssl,然后把它带到那个后端/端口? 有人可以解释一下auth_http该条目的必要性吗?nginx手册好像没说太多。 感谢您的任何努力。 authentication proxy smtp nginx reverse-proxy 1 个回答 Voted Best Answer masegaloeh 2016-05-21T06:24:55+08:002016-05-21T06:24:55+08:00 基本上,您的工作流程中有三个重要步骤 通过 STARTTLS 或 SMTPS 进行加密和解密过程 身份验证过程,即检查您是否允许进行 SMTP 交易 SMTP 转录(MAIL FROM、RCPT TO 等) 据我了解,您想使用 nginx 来执行第 1 步,并将剩余的事务透明地传递给后端。不幸的是,由于它的设计,你不能用 nginx 来做到这一点。Nginx 在将请求传递到后端之前总是执行第 1 步和第 2 步。 这就是为什么参数auth_http变得至关重要的原因。基本上 nginx 从 SMTP 身份验证过程中获取用户名和密码,通过协议将其传递给 auth_http URL 。它期望关于身份验证状态(事务是否可以继续)以及 SMTP 数据应该传递到哪个地址和端口的响应。 因此,如果您只需要一些用于 SMTP 的 SSL 剥离器代理,那么 nginx 可能不适合您的情况。
基本上,您的工作流程中有三个重要步骤
据我了解,您想使用 nginx 来执行第 1 步,并将剩余的事务透明地传递给后端。不幸的是,由于它的设计,你不能用 nginx 来做到这一点。Nginx 在将请求传递到后端之前总是执行第 1 步和第 2 步。
这就是为什么参数
auth_http
变得至关重要的原因。基本上 nginx 从 SMTP 身份验证过程中获取用户名和密码,通过协议将其传递给 auth_http URL 。它期望关于身份验证状态(事务是否可以继续)以及 SMTP 数据应该传递到哪个地址和端口的响应。因此,如果您只需要一些用于 SMTP 的 SSL 剥离器代理,那么 nginx 可能不适合您的情况。