IISには、セルフホストWebサービスではデフォルトで利用できない多くの共通機能が用意されています。スーパーバイザー:Webアプリケーションの状態を監視し、アプリケーションが異常に見え始めた場合(メモリ、CPUなどを多用し、設定可能)、アプリケーションを強制終了または再起動します。CPU使用率、接続制限などのリソース制限。最小限の特権セキュリティのために特定のユーザーとして実行します。証明書/ SSLを管理します。1つのポート/インターフェイスを介して多くのアプリケーションをホスト/管理します。コンソールアプリケーションへのリバースプロキシ。リクエストロギングなど、言及しなかった他の多くのこと。
私はTomcatに慣れていませんが、同じ話だと思います。セルフホスティングではデフォルトでは提供されない追加のホスティング機能があり、自分で実装するのは非常に難しい場合があります。
多くの場合、セルフホストWebサービスを公開する製品は、本番環境でリバースプロキシまたは他のスーパーバイザの背後に置くことを推奨します。これは、クラッシュが発生しても、ネットワークが中断しても正常に機能するようにするためです。たとえば、Dockerサービス用のNGINXを考えています。.NETの分野では、KestrelはIISを介して標準的な手法(またはLinux / MacのNGINX)でリバースプロキシされていると思います。
従来、ASP.NETアプリはInternet Information Server(IIS)でWindowsのみでホストされていました。WindowsでASP.NET Coreアプリケーションを実行するための推奨方法は、引き続きIISを使用していますが、リバースプロキシサーバーとして使用しています。IISのASP.NETコアモジュールは、アウトプロセスでホストされているKestrel HTTPサーバーへの要求を管理およびプロキシします。
Expires
とETag
ヘッダーなどの簡単なこと。さらに、トラフィックをhost
で分離したり、アプリケーションを互いのメモリ、SSLから遠ざけたり、数千の同時リクエストを管理したりするなど、より複雑な処理を行う...