2016-02-13 5 views
1

Я искал решение для этого уже довольно много часов. Я тоже довольно новичок в Nginx, поэтому, если кто-то может помочь мне с демо-конфигурацией, это будет превосходно.Nginx as Exchange-proxy

  • 1 публичный IP-адрес (это то, что вызывает столько проблем)
  • Nginx в качестве прокси-сервера
  • Обмен 2013

Текущая ситуация:

  • Http: apps.domain .org, video.domain.org, geo.domain.org. Трафик на порту 80 отправляется на сервер Nginx.
  • https: mail.domain.org. Трафик на порту 443 идет прямо на Exchange 2013.

Теперь нам нужно https/SSL на нашем сайте apps.domain.org. Наш брандмауэр проверяет только IP-адреса и перенаправляет трафик.

Итак, моя идея состоит в том, чтобы весь трафик отправлялся в Nginx. Там, мне нужно знать, что для mail.domain.org и перенаправить его на Exchange. В частности, мне нужно все для работы. OWA, автообнаружение: ОК. Но я борюсь с тем, что кажется RPC.

Кто-то упомянул, что для управления этим должен использовать поток config в Nginx.

Но я не знаю, как различать, так что только mail.domain.org использует поток, а apps.domain.org находится в конфигурации http?


Мой текущий конфиг (благодаря ссылкам ниже, а в частности tigunov в комментарии о получении мобильного Outlook ака RPC работать) получает меня дальше, чем раньше. В настоящее время не удается выполнить попытку FolderSync при попытке использовать Microsoft Remote Connectivity Analyzer. В Outlook все еще появляется окно учетных данных.


server { 
     (server_name , SSL-certs etc) 

     # Set global proxy settings 
     proxy_pass_header  Date; 
     proxy_pass_header  Server; 

     proxy_set_header  Host $host; 
     proxy_set_header  X-Real-IP $remote_addr; 
     proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header  Accept-Encoding ""; 


     keepalive_timeout 3h; 
     proxy_read_timeout 3h; 
     #reset_timedout_connection on; 
     tcp_nodelay on; 
     client_max_body_size 3G; 
     #proxy_pass_header Authorization; 
     proxy_pass_request_headers on; 
     proxy_http_version 1.1; 
     proxy_request_buffering off; 
     proxy_buffering off; 
     proxy_set_header Connection "Keep-Alive"; 

} 

испытаний в настоящее время приводит к: (все тонкой, включая ActiveSync - OPTIONS), но:

Attempting the FolderSync command on the Exchange ActiveSync session. 
The test of the FolderSync command failed. 

Exception details: 
Message: The request was aborted: The request was canceled. 
Type: System.Net.WebException 
Stack trace: 

at System.Net.HttpWebRequest.GetResponse() 
at Microsoft.Exchange.Tools.ExRca.Extensions.RcaHttpRequest.GetResponse() 
Elapsed Time: 526 ms. 

Никаких дополнительных деталей, чтобы увидеть в инструменте подключения.

ответ

1

Эта конфигурация основана на конфигурации Tad DeVries, найденной here и исправлении Даниэля Кемпкенса для обнаружения автообнаружения и проблем с RPC here.

Обратите внимание, что, поскольку у меня нет среды Exchange для тестирования, я не уверен, будет ли эта конфигурация работать правильно, но стоит попробовать.

server { 
     listen 80; 
     #listen [::]:80; 
     server_name mail.gwtest.us autodiscover.gwtest.us; 
     return 301 https://$host$request_uri; 
} 

server { 
     listen 443; 
     #listen [::]:443 ipv6only=on; 
     ssl      on; 
     ssl_certificate   /etc/ssl/nginx/mail.gwtest.us.crt; 
     ssl_certificate_key  /etc/ssl/nginx/mail.gwtest.us.open.key; 
     ssl_session_timeout  5m; 

     server_name mail.gwtest.us; 

     location/{ 
       return 301 https://mail.gwtest.us/owa; 
     } 

     proxy_http_version  1.1; 
     proxy_read_timeout  360; 
     proxy_pass_header  Date; 
     proxy_pass_header  Server; 
     proxy_pass_header  Authorization; 

     proxy_set_header  Accept-Encoding ""; 
     proxy_set_header  Host $host; 
     proxy_set_header  X-Real-IP $remote_addr; 
     proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for; 

     more_set_input_headers 'Authorization: $http_authorization'; 
     more_set_headers -s 401 'WWW-Authenticate: Basic realm="exch1.test.local"'; 

     location ~* ^/owa { proxy_pass https://exch1.test.local; } 
     location ~* ^/Microsoft-Server-ActiveSync { proxy_pass https://exch1.test.local; } 
     location ~* ^/ecp { proxy_pass https://exch1.test.local; } 
     location ~* ^/rpc { proxy_pass https://exch1.test.local; } 
     #location ~* ^/mailarchiver { proxy_pass https://mailarchiver.local; } 

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