我在 Windows 2016 Server 上使用 Apache 2.4.7 作為幾個 Spring Boot REST 應用程式之間的負載平衡器<VirtualHost *:8000>
。這工作正常。
但是,我還有一個 Angular 單頁面應用程序,我想將其文件(HTML、CSS、JS 等)託管在同一個 Apache 伺服器上。我需要使用相同的連接埠號8000
,因為 Angular 應用程式正在進行 REST 調用,否則我將收到 CORS 錯誤。
我的問題是:如何將 Apache 設定為同一連接埠上的靜態 Web 伺服器和負載平衡器?
答案1
不確定您的具體設置和細節,但一般來說您想要做的是設定和阿帕契反向代理。您不需要配置新連接埠或類似的東西。正如 Apache 官方文件所解釋的:
In addition to being a "basic" web server, and providing static and dynamic content to end-users, Apache httpd (as well as most other web servers) can also act as a reverse proxy server, also-known-as a "gateway " 伺服器.
在這種情況下,httpd 本身不會產生或託管數據,而是由一台或多台後端伺服器取得內容,這些伺服器通常與外部網路沒有直接連接。當 httpd 接收來自客戶端的請求時,請求本身就是代理的到這些後端伺服器之一,然後該伺服器處理請求,產生內容,然後將此內容傳回 httpd,然後 httpd 產生實際的 HTTP 回應回客戶端。
因此,就您的情況而言,您需要了解的有關 Apache 的事情是您可以配置路徑和目錄,使其在 Apache 中以特定方式運行。因此,一個 URL 可以針對特定的配置和行為進行操作,甚至可以忽略。
有關如何配置 Apache 反向代理的更多詳細信息,查看我在伺服器故障上發布的答案。