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