Огромное спасибище! Дальше я сам! :)<br><br><div class="gmail_quote">9 июля 2009 г. 19:47 пользователь Igor Muratov <span dir="ltr"><<a href="mailto:migor@altlinux.org">migor@altlinux.org</a>></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<=====<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<=====<br>
<br>
А это скрипт на который ссылается директива auth_http. В функцию auth_user можно добавить какую-нибудь авторизацию по вкусу.<br>
<br>
====8<=====<br>
#!/bin/sh<br>
<br>
IMAP_SERVER="192.168.1.201"<br>
POP3_SERVER="192.168.1.201"<br>
SMTP_SERVER="192.168.5.11"<br>
<br>
auth_user() {<br>
return 0<br>
}<br>
<br>
send_fail() {<br>
echo "Auth-Status: Invalid login or password"<br>
echo ""<br>
exit<br>
}<br>
<br>
send_pass() {<br>
local server="$1"<br>
local port="$2"<br>
<br>
echo "Auth-Status: OK"<br>
echo "Auth-Server: $server"<br>
echo "Auth-Port: $port"<br>
echo ""<br>
exit<br>
}<br>
<br>
if [ -z "$HTTP_AUTH_USER" -o -z "$HTTP_AUTH_PASS" ]<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 "$protocol" 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<=====<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>