Exchange 和 Apache 服务器位于同一外部 IP

Exchange 和 Apache 服务器位于同一外部 IP

我的网络有一个 Exchange 服务器和一个托管网站的 apache 服务器。

Exchange 是 192.168.1.10

Apache 是 192.168.1.12,使用 SSL 保护

路由器/防火墙是 192.168.1.1

我的外部静态 IP 地址(例如)是 1.1.1.1 www.aaa.com

我已将路由器设置为将 80 和 443 端口转发至 192.168.1.12

因此,当我浏览 www.aaa.com 时,它只会显示该网站。

这样做可以防止通过移动电话从外部访问 Exchange 服务器,因为 443 仅访问网站。

有没有办法配置它,以便基于邮件的流量可以通过 Web 服务器传递到电子邮件服务器?我尝试查看 apache 的子域(例如,调用邮件域 mail.aaa.com),但我不清楚我想要实现什么,所以无法弄清楚我在寻找什么。

答案1

是的,这是可能的,但是您需要将 Apache 配置为 Exchange 的反向代理。

由于您需要与 www.aaa.com 的 Web 服务器共存,因此您还需要为 Exchange 配置另一个名称。事实上,您只需要为 Exchange 配置 2 个名称,即 autodiscover.aaa.com 和 owa.aaa.com 或 outlook.aaa.com 之类的名称。

  1. 为 Exchange 外部 URL 配置虚拟主机外部 URL(自动发现、owa 等)
  2. 设置公共 DNS 以将所有这些名称指向 1.1.1.1(您的路由器公共 IP)
  3. 继续将 80 和 443 重定向至 192.168.1.12
  4. 将虚拟主机添加到 apache 配置以设置反向代理(您可以检查https://github.com/phr0gz/Apache-reverse-proxy-for-Exchange-2010-2013-2016/blob/master/webmail.conf以供参考)

如果 apache 的配置太麻烦,您还可以在 IIS 上添加反向代理,并设置重定向到该服务器。它将负责根据名称将流量引导到 apache 或 Exchange。有关该主题的更多信息:https://blogs.technet.microsoft.com/exchange/2013/07/19/part-1-reverse-proxy-for-exchange-server-2013-using-iis-arr/

答案2

您可能正在寻找一个支持“SNI”(服务器名称指示)的入口控制器,它可用于根据所访问的主机名创建虚拟主机。您可以使用 Apache,正如 @michaël-bozio-made 所建议的那样。您还可以使用许多其他 Web 服务器,如 nginx,或专用负载平衡器应用程序,如 haproxy(我的首选)。使用任何这些解决方案,您都可以将端口 443 转发到入口控制器应用程序(也可能称为“应用程序防火墙”或类似名称),然后让控制器根据适当的标准(在本例中为客户端请求的主机名)将连接中继到适当的后端服务器(可以位于您现在选择的任何端口上)。理论上,您还可以在 Web 服务器的 URL 上使用 /exchange 来代理到 Exchange 服务器(查看 mod_proxy 文档),但有些应用程序不喜欢隐藏在 URL 前缀后面。从高层次上讲,这就是大型站点通常的工作方式。

另一个选择是为其中一项服务使用备用端口。例如,您可以将 8443 转发到 Exchange,这样客户端就可以将其用作https://exchange.yourdomain.com:8443/URL(假设您实际上并未运行美国汽车协会的 aaa.com 网站)。

相关内容