Re: Объясните плиз про SMTP-проксирование
Виктор Вислобоков
corochoone at gmail.com
Thu Jul 9 21:23:22 MSD 2009
Огромное спасибище! Дальше я сам! :)
9 июля 2009 г. 19:47 пользователь Igor Muratov <migor at altlinux.org> написал:
> Вот простейший пример для проксирования SMTP
>
> ====8<=====
> mail {
> auth_http 192.168.5.11:80/cgi-bin/auth;
> auth_http_timeout 10000;
>
> server {
> listen 25;
> protocol smtp;
> server_name nginx.reasoningmind.org;
>
> proxy on;
> xclient off;
> }
> }
> ====8<=====
>
> А это скрипт на который ссылается директива auth_http. В функцию auth_user
> можно добавить какую-нибудь авторизацию по вкусу.
>
> ====8<=====
> #!/bin/sh
>
> IMAP_SERVER="192.168.1.201"
> POP3_SERVER="192.168.1.201"
> SMTP_SERVER="192.168.5.11"
>
> auth_user() {
> return 0
> }
>
> send_fail() {
> echo "Auth-Status: Invalid login or password"
> echo ""
> exit
> }
>
> send_pass() {
> local server="$1"
> local port="$2"
>
> echo "Auth-Status: OK"
> echo "Auth-Server: $server"
> echo "Auth-Port: $port"
> echo ""
> exit
> }
>
> if [ -z "$HTTP_AUTH_USER" -o -z "$HTTP_AUTH_PASS" ]
> then
> send_fail;
> fi
>
> username=$HTTP_AUTH_USER
> userpass=$HTTP_AUTH_PASS
> protocol=$HTTP_AUTH_PROTOCOL
>
> сase "$protocol" in
> imap)
> backend_ip=$IMAP_SERVER
> backend_port=143
> ;;
> pop|pop3)
> backend_ip=$POP3_SERVER
> backend_port=110
> ;;
> smtp)
> backend_ip=$SMTP_SERVER
> backend_port=25
> ;;
> *)
> backend_ip=$POP3_SERVER
> backend_port=110
> ;;
> esac
>
> auth_user $username $userpass || send_fail
> send_pass $backend_ip $backend_port
> ====8<=====
>
>
>
> Виктор Вислобоков пишет:
>
> Здравствуйте.
>>
>> Что-то никак не могу вьехать в возможности nginx в плане
>> SMTP-проксирования. Документации на эту тему тоже как-то не слишком много,
>> поэтому сильно не пинайте, пожалуйста.
>>
>> Что мне непонятно. Как вообще это работает? Находил конфиги для SMTP, но
>> ясности они не добавили :(
>> Например написано про проксирование SMTP, IMAP и POP3, но каким образом
>> nginx понимает куда должен передать запрос я так и не понял.
>>
>> В общем что мне надо.
>> Надо SMTP-прокси прозрачно пробрасывал входящие SMTP-соединения на бакенд
>> (у меня exim), причём чтобы и SMTP-авторизация работала, и чтобы при этом я
>> бы мог пользоваться таким вкусностями nginx как limit_zone и limit_conn,
>> например для того, чтобы ограничить количество SMTP соединений с одного IP,
>> ещё до передачи в бакенд. Могу я такое сделать с помощью nginx или нет?
>>
>> Буду благодарен любым ответам или ссылкам на доки, где могу найти эти
>> ответы.
>> С уважением, Виктор
>>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20090709/eff61b5e/attachment.html>
More information about the nginx-ru
mailing list