Perché utilizzare IIS o apache tomcat invece di auto-hosting?

6

Sono uno sviluppatore .NET. Vedo che il framework ASP.NET MVC ora ha iniziato a fornire una funzionalità di self-hosting. Ha molto senso (per me). Un'applicazione auto-ospitata si sente completa senza dipendenze esterne.

La domanda che ho in mente è ora perché qualcuno NON vorrebbe auto-ospitare? Voglio dire, ci sono dei vantaggi che IIS mi darà per il self-hosting. Sono sicuro che ci sono alcuni vantaggi perché altrimenti, Microsoft non si sarebbe preoccupata di creare l'integrazione di IIS con il nucleo di asp.net.

Non voglio che la mia domanda sia specifica di .NET. Quindi, io vado con- perché andare con perché usare IIS o apache tomcat invece di auto-hosting?

    
posta bilal fazlani 21.09.2016 - 19:05
fonte

1 risposta

10

IIS offre una serie di funzionalità comuni che non sono disponibili per impostazione predefinita nei servizi Web self-hosted. Supervisore: monitora la salute dell'applicazione web e ucciderà / respawn l'applicazione se inizia a sembrare malsana (utilizzando troppa memoria, CPU, ecc. - configurabile). Limiti di risorse come l'utilizzo della CPU, limiti di connessione, ecc. Esegui come un determinato utente per la sicurezza dei privilegi minimi. Gestisci certificati / SSL. Ospita / gestisci molte applicazioni attraverso una porta / interfaccia. Reverse proxy per console applicazioni. Un sacco di altre cose che non ho menzionato come la registrazione delle richieste.

Non ho familiarità con Tomcat, ma presumo sia la stessa storia. Ottieni funzionalità di hosting extra che l'auto-hosting non ti fornisce di default e potrebbe essere piuttosto difficile da implementare.

Spesso i prodotti che espongono un servizio web self-host raccomandano comunque di metterli dietro un proxy inverso o un altro supervisore in produzione. Ciò potrebbe essere necessario per garantire che sopravviva agli arresti anomali o alla grazia durante le interruzioni della rete. Sto pensando a NGINX per i servizi Docker, per esempio. Nello spazio .NET, credo che Kestrel sia proxy inverso tramite IIS come pratica standard (o forse NGINX su Linux / Mac).

Traditionally, ASP.NET apps have been windows-only hosted on Internet Information Server (IIS). The recommended way to run ASP.NET Core applications on Windows is still using IIS, but as a reverse-proxy server. The ASP.NET Core Module in IIS manages and proxies requests to the Kestrel HTTP server hosted out-of-process.

    
risposta data 30.09.2016 - 00:19
fonte

Leggi altre domande sui tag