Apache を同じポートで静的 Web サーバーとロード バランサーの両方として構成することは可能ですか?

Apache を同じポートで静的 Web サーバーとロード バランサーの両方として構成することは可能ですか?

私は、Windows 2016 Server 上で、section を使用するいくつかの Spring Boot REST アプリケーション間のロード バランサーとして Apache 2.4.7 を使用しています<VirtualHost *:8000>。これは正常に動作しています。

ただし、Angular シングル ページ アプリケーションもあり、そのファイル (HTML、CSS、JS など) を同じ Apache サーバーでホストしたいと考えています。Angular8000アプリケーションが REST 呼び出しを行うため、同じポート番号を使用する必要があります。そうしないと、CORS エラーが発生します。

私の質問は、Apache を同じポートで静的 Web サーバーとロード バランサーの両方として構成するにはどうすればよいかということです。

答え1

具体的な設定や詳細については不明ですが、一般的には設定とApache リバースプロキシ新しいポートなどを設定する必要はありません。Apache の公式ドキュメントでは次のように説明されています。

Apache httpd は、「基本的な」 Web サーバーとして、エンド ユーザーに静的および動的なコンテンツを提供するだけでなく、(他のほとんどの Web サーバーと同様に) リバース プロキシ サーバー (「ゲートウェイ」サーバーとも呼ばれます) としても機能します。

このようなシナリオでは、httpd自体はデータを生成したりホストしたりするのではなく、コンテンツは1つまたは複数のバックエンドサーバーによって取得されます。通常、バックエンドサーバーは外部ネットワークに直接接続されていません。httpdがクライアントからリクエストを受信すると、リクエスト自体はプロキシこれらのバックエンド サーバーの 1 つに送信され、リクエストが処理され、コンテンツが生成されて、そのコンテンツが httpd に返されます。その後、実際の HTTP 応答が生成されてクライアントに返されます。

したがって、あなたの場合、Apache について知っておく必要があるのは、Apache でパスとディレクトリを特定の方法で動作するように構成できるということです。つまり、1 つの URL を特定の構成と動作に対して動作させることも、無視することもできます。

Apacheリバースプロキシの設定方法の詳細については、Server Faultに投稿したこの回答をご覧ください

関連情報