У меня есть среда Exchange 2007, которую я обновляю до Exchange 2010. У меня Squid настроен как обратный прокси-сервер, и я разместил его перед своим сервером Exchange 2007 CAS. Оба сервера расположены на одном сайте Active Directory.
Exchange 2010 не позволяет проксировать OWA на серверы Exchange 2007 на том же сайте AD, а Microsoft требует перенаправления OWA в период сосуществования (к счастью, это не относится к ActiveSync). Поскольку у меня очень ограниченный пул общедоступных IP-адресов (перевод: ни один из резервных), и мне нужно, чтобы OWA был доступен для пользователей на этапе тестирования, я надеялся настроить Squid для работы в качестве обратного прокси для обоих серверов CAS.
Однако проблема, с которой я сталкиваюсь, заключается в том, что когда я настраиваю Squid для обработки как OWA2007, так и OWA2010, он будет обслуживать трафик только к первому элементу OWA, указанному в конфигурации, и любой трафик, адресованный другому сайту OWA, перенаправляется на первый.
Если я укажу owa2010.domain.local в качестве первого элемента конфигурации и попытаюсь перейти на owa2007.domain.local, Squid направит меня на сайт OWA2010.
Вот копия конфигурации, которую я тестирую.
visible_hostname OWA2010.domain.local
extension_methods RPC_IN_DATA RPC_OUT_DATA
https_port 443 cert=/usr/local/squid/certs/cert.crt key=/usr/local/squid/certs/cert.nopass.key defaultsite=OWA2010.domain.local
cache_peer 192.168.1.254 parent 443 0 no-query originserver login=PASS ssl sslflags=DONT_VERIFY_PEER sslcert=/usr/local/squid/certs/exchange.crt sslkey=/usr/local/squid/certs/nopassexchange.key name=owa2010
acl OWA dstdomain OWA2010.domain.local
cache_peer_access owa2010 allow OWA
never_direct allow OWA
http_access allow OWA
miss_access allow OWA
visible_hostname OWA2007.domain.local
extension_methods RPC_IN_DATA RPC_OUT_DATA
https_port 443 cert=/usr/local/squid/certs/cert2.crt key=/usr/local/squid/certs/webmail2nopass.key defaultsite=OWA2007.domain.local
cache_peer 192.168.1.1 parent 443 0 no-query originserver login=PASS ssl sslflags=DONT_VERIFY_PEER sslcert=/usr/local/squid/certs/exchange.crt sslkey=/usr/local/squid/certs/nopassexchange.key name=owa2007
acl OWA2 dstdomain OWA2007.domain.local
cache_peer_access owa2007 allow OWA2
never_direct allow OWA2
http_access allow OWA2
miss_access allow OWA2
Я не уверен, что мне нужно изменить, чтобы Squid работал как обратный прокси для двух серверов OWA. Может ли кто-нибудь помочь мне найти, что я делаю не так?
Изменить: я забыл упомянуть, что это пакет Squid 2.6, который поставляется с CentOS 5. Моя машина squid работает под управлением CentOS 5.7.
Я нашел решение с использованием NginX и решил заменить Squid.
редактировать Согласно комментарию Уоррена, я собираюсь расширить это решение. Прошу прощения за краткость предыдущего ответа.
Мне не удалось найти способ заставить Squid работать на нескольких сайтах OWA, и мне не удалось заставить мою конфигурацию работать. Я нашел пример конфигурации для NginX, который поддерживает несколько сайтов SSL, и совместил его с конфигурацией для OWA. На основании моего тестирования конфигурация NginX предоставила мне способ делать то, что я искал, и я решил заменить Squid.
Конкретная проблема, которую он решил, заключалась в том, что Squid не перенаправлял на owa2007.domain.local, когда owa2010.domain.local был первым сайтом, указанным в конфигурации (и наоборот). Мое тестирование с конфигурацией, которую я построил после чтения сайтов ниже, показало, что это не проблема NginX.
Источники: http://planetit.ws/linux/debian/configuring-nginx-based-reverse-proxy-for-owa.html http://blog.peacon.co.uk/wiki/NginX_Reverse_Proxy_Configuration http://nginx.org/en/docs/http/configuring_https_servers.html