Огромное спасибище! Дальше я сам! :)<br><br><div class="gmail_quote">9 июля 2009 г. 19:47 пользователь Igor Muratov <span dir="ltr">&lt;<a href="mailto:migor@altlinux.org">migor@altlinux.org</a>&gt;</span> написал:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Вот простейший пример для проксирования SMTP<br>
<br>
====8&lt;=====<br>
mail {<br>
   auth_http   <a href="http://192.168.5.11:80/cgi-bin/auth" target="_blank">192.168.5.11:80/cgi-bin/auth</a>;<br>
   auth_http_timeout   10000;<br>
<br>
   server {<br>
       listen      25;<br>
       protocol    smtp;<br>
       server_name <a href="http://nginx.reasoningmind.org" target="_blank">nginx.reasoningmind.org</a>;<br>
<br>
       proxy       on;<br>
       xclient     off;<br>
   }<br>
}<br>
====8&lt;=====<br>
<br>
А это скрипт на который ссылается директива auth_http. В функцию auth_user можно добавить какую-нибудь авторизацию по вкусу.<br>
<br>
====8&lt;=====<br>
#!/bin/sh<br>
<br>
IMAP_SERVER=&quot;192.168.1.201&quot;<br>
POP3_SERVER=&quot;192.168.1.201&quot;<br>
SMTP_SERVER=&quot;192.168.5.11&quot;<br>
<br>
auth_user() {<br>
   return 0<br>
}<br>
<br>
send_fail() {<br>
   echo &quot;Auth-Status: Invalid login or password&quot;<br>
   echo &quot;&quot;<br>
   exit<br>
}<br>
<br>
send_pass() {<br>
   local server=&quot;$1&quot;<br>
   local port=&quot;$2&quot;<br>
<br>
   echo &quot;Auth-Status: OK&quot;<br>
   echo &quot;Auth-Server: $server&quot;<br>
   echo &quot;Auth-Port: $port&quot;<br>
   echo &quot;&quot;<br>
   exit<br>
}<br>
<br>
if [ -z &quot;$HTTP_AUTH_USER&quot; -o -z &quot;$HTTP_AUTH_PASS&quot; ]<br>
then<br>
   send_fail;<br>
fi<br>
<br>
username=$HTTP_AUTH_USER<br>
userpass=$HTTP_AUTH_PASS<br>
protocol=$HTTP_AUTH_PROTOCOL<br>
<br>
сase &quot;$protocol&quot; in<br>
imap)<br>
   backend_ip=$IMAP_SERVER<br>
   backend_port=143<br>
   ;;<br>
pop|pop3)<br>
   backend_ip=$POP3_SERVER<br>
   backend_port=110<br>
   ;;<br>
smtp)<br>
   backend_ip=$SMTP_SERVER<br>
   backend_port=25<br>
   ;;<br>
*)<br>
   backend_ip=$POP3_SERVER<br>
   backend_port=110<br>
   ;;<br>
esac<br>
<br>
auth_user $username $userpass || send_fail<br>
send_pass $backend_ip $backend_port<br>
====8&lt;=====<br>
<br>
<br>
<br>
Виктор Вислобоков пишет:<div><div></div><div class="h5"><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Здравствуйте.<br>
<br>
Что-то никак не могу вьехать в возможности nginx в плане SMTP-проксирования. Документации на эту тему тоже как-то не слишком много, поэтому сильно не пинайте, пожалуйста.<br>
<br>
Что мне непонятно. Как вообще это работает? Находил конфиги для SMTP, но ясности они не добавили :(<br>
Например написано про проксирование SMTP, IMAP и POP3, но каким образом nginx понимает куда должен передать запрос я так и не понял.<br>
<br>
В общем что мне надо.<br>
Надо SMTP-прокси прозрачно пробрасывал входящие SMTP-соединения на бакенд (у меня exim), причём чтобы и SMTP-авторизация работала, и чтобы при этом я бы мог пользоваться таким вкусностями nginx как limit_zone и limit_conn, например для того, чтобы ограничить количество SMTP соединений с одного IP, ещё до передачи в бакенд. Могу я такое сделать с помощью nginx или нет?<br>

<br>
Буду благодарен любым ответам или ссылкам на доки, где могу найти эти ответы.<br>
С уважением, Виктор<br>
</blockquote>
<br>
<br>
</div></div></blockquote></div><br>