2つの別個の類似したサーバーの理由は何ですか?違いは何ですか?両方をドッカーで実行できますか?すべての認証タイプのように、両方が同じものをサポートしていますか?
Kestrel vs Weblistener-以下の基本的な違いを強調しました。
(単語はMicrosoftのものであり、簡潔さと明確さのために編集しただけです。下部にリンクされているソースを参照してください)。
WebListeneriswindows-onlyサーバーにインターネットを直接公開できるようにするASP.NET CoreのHTTP/WebサーバーIISを使用する必要はありません。 WebListenerはHttp.Sys(IISのHTTP Listenerもサポートする成熟したテクノロジと同じ)の上に構築されているため非常に豊富な機能およびは、さまざまな攻撃に対する保護を提供します。
Kestrel一方、クロスプラットフォームプロキシの背後で実行されるように設計されたASP.NET Core用のWebサーバー(たとえば、IISまたはNginx)およびは、インターネットに直接面して展開しないでください。ケストレルは比較的新しく、は攻撃に対する完全な防御機能を備えていません。これはとしても機能豊富ではなくWebListenerとして機能し、タイムアウト制限が付属しています、サイズ制限、同時ユーザー制限。
本質的には、選択はWebアプリケーションの配備シナリオに依存します。
Kestrelは、セキュリティ上の理由から、以前は常にEdgeデプロイメント(インターネットからのトラフィックに公開される)でリバースプロキシを使用する必要がありました。 ASP.Net Core 2.xのKestrelでは、これは当てはまりません。詳細については、ドキュメントをご覧ください。 Kestrel Webサーバーのドキュメント
ここにあるASP.NET 5ドキュメント(2015年8月25日にMicrosoftによって作成された)には、他の回答で見つかったグラフがリストされています(右下の本のページの107ページを参照)。 PDFのページ111): https://media.readthedocs.org/pdf/aspnet/theming/aspnet.pdf
Kestrelは、以下のいずれかに使用した場合、一般にパフォーマンスが向上します。
WebListenerはより安全で低速であり、より多くの機能を備えています。次の場合に使用されます。