nginx+exchange

Igor Muratov migor at altlinux.org
Thu Jul 9 02:59:14 MSD 2009


Народ, у кого-нибудь есть успешный опыт проксирования Exchange через 
nginx? Есть задача прикрыть почтовый сервер ексчейндж, который стоит в 
локальной сети, с помощью nginx. С протоколами POP3/IMAP/SMTP вроде 
разобрался, а вот OWA через https ну никак не хочет работать. Аутлук 
спрашивает логин/пароль, висит и потом отваливается. В логах получаю

10.16.18.16 - - [08/Jul/2009:17:41:07 -0500] "-" 400 0 "-" "-"

Настраивал вот по этому документу: http://planetit.ws/pdf/article-22.pdf
Пробовал еще просто браузером пройти. Там же веб-морда имеется. Бейсик 
авторизация запрашивается дважды. Первая непонятно откуда берется 
поскольку в конфиге ничего я не прописывал. Что бы ни вводил - не 
пропускает. Тогда просто жму отмену и попадаю на вторую авторизацию. Вот 
она уже пропускает на веб-морду эксчейнджа если правильно ввести логин и 
пароль.
Забавно, но этот эффект зависит от браузера. Он проявляется в IE и FF но 
отсутствует в Опере.

Посмотрите пожалуйста, может у кого есть какие-то идеи на этот счет

http {
    server {
        listen              443;
        server_name         nginx.example.org

        # Redirect from / to /exchange by default
        rewrite             ^/$ https://nginx.example.org/exchange 
permanent;

        # Enable SSL
        ssl                 on;
        ssl_certificate     /etc/nginx/ssl/nginx.example.org.pem;
        ssl_certificate_key /etc/nginx/ssl/nginx.example.org.pem;
#        ssl_client_certificate  /etc/nginx/ssl/example_CA.pem;
#        ssl_verify_client   on;
        ssl_session_timeout 5m;

        # Set global proxy settings
        proxy_read_timeout  360;

        proxy_pass_header   Date;
        proxy_set_header    Server internal.exchange.name;
        proxy_set_header    Host $host;
        proxy_set_header    X-Real-IP $remote_addr;
        proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
        location /exchange {
            proxy_pass https://192.168.1.201/exchange;
        }
        location /exchweb {
            proxy_pass https://192.168.1.201/exchweb;
        }
        location /public {
            proxy_pass https://192.168.1.201/public;
        }
        location /Microsoft-Server-ActiveSync {
            proxy_pass https://192.168.1.201/Microsoft-Server-ActiveSync;
        }

        error_log  /var/log/nginx/exchange-error.log;
        access_log  /var/log/nginx/exchange-access.log;
    }
}

Спасибо за любые подсказки.






More information about the nginx-ru mailing list