加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

nginx:了解auth_http(IMAP代理)的目的

发布时间:2020-12-13 21:22:22 所属栏目:Nginx 来源:网络整理
导读:我想通过nginx代理将IMAP客户端请求发送到IMAP后端.根据mail_auth_http模块,必须使用指令auth_http来验证客户端.但是auth_http究竟是什么目的,为什么认证过程不能简单地转发到IMAP后端呢? 据我所知,auth_http指向一个身份验证脚本,该脚本使用自定义HTTP协议

我想通过nginx代理将IMAP客户端请求发送到IMAP后端.根据mail_auth_http模块,必须使用指令auth_http来验证客户端.但是auth_http究竟是什么目的,为什么认证过程不能简单地转发到IMAP后端呢?

据我所知,auth_http指向一个身份验证脚本,该脚本使用自定义HTTP协议来确定将使用哪个后端等,并且完全跳过基于IMAP的实际身份验证.我对么?

如果有人能发布一个实际的例子,我会很感激.

最佳答案
auth_http主要做两件事:

>它对用户进行身份验证(包括有效延迟用户身份验证失败的各种选项).
>它确定使用哪个后端(以及在后端身份验证中使用的用户名和密码,如果有的话).

虽然在某些情况下,身份验证可以由后端直接处理,但这并不总是可行的.此外,如果需要将nginx用作邮件代理,则几乎总是意味着有多个后端,并且事先不知道后端.

使用nginx处理身份验证(特别是身份验证错误)也更有效,因为邮件服务器倾向于使用每个连接进程的模型,并且在返回错误之前无法有效等待一段时间.

如果您不关心上述所有内容,并希望nginx只是将连接传递给预定的后端,您可以在nginx http {}块中使用类似这样的内容作为一个简单的auth_http脚本:

location = /auth {
    add_header Auth-Status OK;
    add_header Auth-Server 127.0.0.2;  # backend ip
    add_header Auth-Port   143;        # backend port
    return 204;
}

使用这样的auth脚本,nginx将始终获得成功的身份验证结果,并且它将通过客户端提供的用户名和密码将连接传递给指定的后端.

但请注意,这不应与SMTP一起使用,因为SMTP没有后端身份验证.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读