IIS menyediakan sejumlah kemampuan umum yang tidak tersedia secara default di layanan web yang di-host-sendiri. Pengawas: memonitor kesehatan aplikasi web dan akan mematikan / respawn aplikasi jika mulai terlihat tidak sehat (menggunakan terlalu banyak memori, CPU, dll - dapat dikonfigurasi). Batas sumber daya seperti penggunaan CPU, batas koneksi, dll. Jalankan sebagai pengguna tertentu untuk keamanan dengan hak istimewa yang paling rendah. Kelola sertifikat / SSL. Host / kelola banyak aplikasi melalui satu port / antarmuka. Membalikkan proxy ke aplikasi konsol. Banyak hal lain yang tidak saya sebutkan seperti permintaan logging.
Saya tidak terbiasa dengan Tomcat, tetapi saya menganggap itu adalah cerita yang sama. Anda mendapatkan fitur hosting tambahan yang hosting sendiri tidak berikan secara default dan mungkin cukup sulit untuk diterapkan sendiri.
Seringkali produk yang mengekspos layanan web yang di-hosting-sendiri masih akan merekomendasikan menempatkan mereka di belakang proxy terbalik atau penyelia lain dalam produksi. Ini mungkin untuk memastikan itu akan selamat dari crash atau anggun selama gangguan jaringan. Saya sedang memikirkan NGINX untuk layanan Docker, misalnya. Di ruang .NET, saya percaya Kestrel terbalik diproksikan melalui IIS sebagai praktik standar (atau mungkin NGINX di Linux / Mac).
Secara tradisional, aplikasi ASP.NET telah di-host hanya windows di Internet Information Server (IIS). Cara yang disarankan untuk menjalankan aplikasi Core ASP.NET pada Windows masih menggunakan IIS, tetapi sebagai server reverse-proxy. Modul Inti ASP.NET di IIS mengelola dan proksi permintaan ke server HTTP Kestrel yang dihosting di luar proses.
Expires
danETag
header. Dan kemudian hal-hal yang lebih rumit, seperti memisahkan lalu lintas denganhost
, menjaga aplikasi dari memori masing-masing, SSL, dan mengelola ribuan permintaan bersamaan ...