我在 Windows 2016 Server 上使用 Apache 2.4.7 作为使用部分的几个 Spring Boot REST 应用程序之间的负载平衡器<VirtualHost *:8000>
。这工作正常。
但是,我还有一个 Angular 单页应用程序,我想在同一个 Apache 服务器上托管它的文件(HTML、CSS、JS 等)。我需要使用相同的端口号8000
,因为 Angular 应用程序正在进行 REST 调用,否则我会收到 CORS 错误。
我的问题是:如何将 Apache 配置为同一端口上的静态 Web 服务器和负载平衡器?
答案1
不确定您的具体设置和细节,但一般来说,您要做的就是设置和Apache 反向代理。您不需要配置新端口或类似的东西。正如官方 Apache 文档所解释的那样:
除了作为“基本” Web 服务器并向最终用户提供静态和动态内容之外,Apache httpd(以及大多数其他 Web 服务器)还可以充当反向代理服务器,也称为“网关”服务器。
在这种情况下,httpd 本身不生成或托管数据,而是由一个或多个后端服务器获取内容,这些服务器通常不直接连接到外部网络。当 httpd 从客户端收到请求时,请求本身代理到其中一个后端服务器,该服务器然后处理请求,生成内容,然后将该内容发送回httpd,然后httpd生成实际的HTTP响应返回给客户端。
因此,就您的情况而言,您需要了解的有关 Apache 的信息是,您可以配置路径和目录以在 Apache 中以特定方式运行。因此,一个 URL 可以针对特定配置和行为采取行动,甚至可以被忽略。
有关如何配置 Apache 反向代理的更多详细信息,看看我在 Server Fault 上发布的这个答案。