O auth_http
faz duas coisas principais:
- Autentica os usuários (incluindo várias opções para atrasar efetivamente os usuários na autenticação com falha).
- E determina qual back-end usar (e qual nome de usuário e senha para usar na autenticação de back-end, se houver).
Embora, em alguns casos, a autenticação possa ser tratada diretamente por um back-end, não é algo sempre possível. Além disso, se o nginx precisar ser usado como um proxy de correio, quase sempre significa que há vários back-ends e back-ends que não são conhecidos antecipadamente.
Também é mais eficiente lidar com a autenticação (em particular, erros de autenticação) com o nginx, pois os servidores de email tendem a usar o modelo de processo por conexão e não podem aguardar efetivamente antes de retornar um erro.
Se você não se importa com todos os itens acima, e quer que o nginx passe uma conexão para um backend predeterminado, você pode usar algo parecido com isso no nginx http {} block como um script auth_http morto:
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;
}
Com esse script de autenticação, o nginx sempre obterá um resultado de autenticação bem-sucedido e passará a conexão ao backend especificado, com nome de usuário e senha fornecidos pelo cliente.
Note, porém, que isso deve ser não usado com SMTP, já que não há autenticação de back-end com SMTP.