为多个 OWA 服务器配置 Squid 反向代理

为多个 OWA 服务器配置 Squid 反向代理

我有一个 Exchange 2007 环境,正在将其升级到 Exchange 2010。我已将 Squid 配置为反向代理,并将其放置在 Exchange 2007 CAS 服务器的前面。两台服务器都位于同一个 Active Directory 站点中。

Exchange 2010 不允许 OWA 代理到同一 AD 站点中的 Exchange 2007 服务器,而 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 服务器的反向代理。有人能帮我找出我做错的地方吗?

编辑:我忘了提到这是随 CentOS 5 附带的 Squid 2.6 包。我的 Squid 机器运行的是 CentOS 5.7。

答案1

我找到了一个使用 NginX 的解决方案,并且我决定用它来替换 Squid。

编辑 根据 Warren 的评论,我将扩展此解决方案。对于之前的回答过于简短,我深表歉意。

我无法找到让 Squid 适用于多个 OWA 站点的方法,也无法使我的配置正常工作。我确实找到了一个支持多个 SSL 站点的 NginX 配置示例,并将其与 OWA 的配置相结合。根据我的测试,NginX 配置为我提供了一种方法来做我所寻找的事情,因此我决定替换 Squid。

它解决的具体问题是,当 owa2010.domain.local 是配置中列出的第一个站点时(反之亦然),Squid 不会重定向到 owa2007.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

相关内容