次の方法で共有


Kestrel とリバース プロキシを使用するタイミング

Note

これは、この記事の最新バージョンではありません。 現在のリリースについては、この記事の .NET 8 バージョンを参照してください。

警告

このバージョンの ASP.NET Core はサポート対象から除外されました。 詳細については、「.NET および .NET Core サポート ポリシー」を参照してください。 現在のリリースについては、この記事の .NET 8 バージョンを参照してください。

重要

この情報はリリース前の製品に関する事項であり、正式版がリリースされるまでに大幅に変更される可能性があります。 Microsoft はここに示されている情報について、明示か黙示かを問わず、一切保証しません。

現在のリリースについては、この記事の .NET 8 バージョンを参照してください。

Kestrel は単独で使用することも、"リバース プロキシ サーバー" と併用することもできます。 リバース プロキシ サーバーはネットワークから HTTP 要求を受け取り、これを Kestrel に転送します。 リバース プロキシ サーバーの例を次に示します。

エッジ (インターネットに接続する) Web サーバーとして使用される Kestrel:

Kestrel はリバース プロキシ サーバーなしでインターネットと直接通信する

リバース プロキシ構成で使用される Kestrel:

Kestrel は IIS、Nginx、または Apache などのリバース プロキシ サーバーを介してインターネットと間接的に通信する

いずれの構成でも、リバース プロキシ サーバーの有無に関わらず、ホスティング構成がサポートされています。

リバース プロキシ サーバーのないエッジ サーバーとして Kestrel を使用する場合、複数のプロセス間で同じ IP アドレスとポートを共有することはサポートされません。 あるポートをリッスンするように Kestrel を構成する場合は、要求の Host ヘッダーに関係なく、Kestrel によってそのポートに対するすべてのトラフィックが処理されます。 ポートを共有できるリバース プロキシを使用すると、一意の IP とポート上で Kestrel に要求を転送することができます。

リバース プロキシ サーバーが必要ない場合であっても、リバース プロキシ サーバーを使用すると次のような利点があります。

リバース プロキシ:

  • ホストするアプリの公開されるパブリック サーフェス領域を制限することができます。
  • 構成および防御の層を追加します。
  • 既存のインフラストラクチャとより適切に統合できる場合があります。
  • 負荷分散とセキュリティで保護された通信 (HTTPS) の構成を簡略化します。 リバース プロキシ サーバーのみが、パブリック ドメインの X.509 証明書を必要とします。 そのサーバーは、ローカルで管理された証明書を使用してプレーン HTTP または HTTPS を使用して、内部ネットワーク上のアプリのサーバーと通信できます。 内部 HTTPS ではセキュリティが向上しますが、オーバーヘッドは大幅に増加します。

警告

リバース プロキシ構成でのホストにはホストのフィルター処理が必要です。

その他のリソース

プロキシ サーバーとロード バランサーを使用するために ASP.NET Core を構成する