我想通过 nginx 代理将 IMAP 客户端请求发送到 IMAP 后端。根据mail_auth_http模块,auth_http
必须使用指令来验证客户端。但究竟是什么目的auth_http
,为什么不能简单地将认证过程转发到IMAP后端呢?
据我所知,auth_http
指向一个使用自定义 HTTP 协议的身份验证脚本以确定将使用哪个后端等,并且完全跳过了基于 IMAP 的实际身份验证。我对么?
如果有人可以发布一个实际示例,我将不胜感激。
我想通过 nginx 代理将 IMAP 客户端请求发送到 IMAP 后端。根据mail_auth_http模块,auth_http
必须使用指令来验证客户端。但究竟是什么目的auth_http
,为什么不能简单地将认证过程转发到IMAP后端呢?
据我所知,auth_http
指向一个使用自定义 HTTP 协议的身份验证脚本以确定将使用哪个后端等,并且完全跳过了基于 IMAP 的实际身份验证。我对么?
如果有人可以发布一个实际示例,我将不胜感激。
主要
auth_http
做两件事:虽然在某些情况下,身份验证可以由后端直接处理,但这并不总是可能的。此外,如果需要使用 nginx 作为邮件代理,这几乎总是意味着有多个后端,而后端是事先不知道的。
使用 nginx 处理身份验证(特别是身份验证错误)也更有效,因为邮件服务器倾向于使用每个连接处理模型,并且在返回错误之前无法有效地等待一段时间。
如果您不关心上述所有内容,并且希望 nginx 只将连接传递到预定的后端,您可以在 nginx http{} 块中使用类似这样的东西作为一个死的简单 auth_http 脚本:
使用这样的身份验证脚本,nginx 将始终获得成功的身份验证结果,并将连接传递到指定的后端,用户名和密码由客户端提供。
但请注意,这不应该与 SMTP 一起使用,因为 SMTP 没有后端身份验证。