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

前端之家收集整理的这篇文章主要介绍了nginx:了解auth_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脚本:

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没有后端身份验证.

猜你在找的Nginx相关文章