2012-02-16 3 views
7

Sono stato uno sviluppatore di applicazioni Web Java e ora lavoro su .net framework.Qual è la differenza tra apache/nginx/IIS

Quando lavoro in java web, utilizziamo tomcat/jboss per distribuire la nostra applicazione. Pensavo che il tomcat/jboss fosse un server web.

Quando lavoro in asp.net, utilizzo IIS per distribuire l'applicazione, quindi ho pensato che IIS sia un altro tipo di server web.

In questi giorni, sto imparando le rotaie, poi ho sentito il nginx. Da Google, è anche una specie di server web.

Tuttavia, ho trovato che alcune persone hanno affermato che è possibile utilizzare nginx e IIS insieme o altre combinazioni.

Ora, sono confuso, a mio parere un server Web dovrebbe gestire la richiesta del client e restituire il risultato.

Ogni server Web deve avere la propria indicazione, ad esempio, tomcat per java, iis per asp.net.

Ma perché apache/nginx?


BTW, non intendo che apache/nginx sia inutile, non sono proprio familiare con questo.

Mi chiedo se qualcuno può spiegarlo per me?

+0

Un vero e proprio sistema web mondo, come ad esempio Il portale Amazon può essere composto da diversi server Web con ruoli diversi. In questo caso, è possibile utilizzare diversi software del server Web in base alle loro caratteristiche. Ad esempio, nginx è adatto come proxy inverso per Apache o IIS. –

risposta

11

Per prima cosa: un "server web" è solo un software che serve i contenuti tramite il protocollo http (s). Questa è la funzionalità minima. Quindi hai gettato un sacco di funzionalità aggiuntive ...

JBOSS/Tomcat non è solo un "server web"; un tomcat fornisce funzionalità per avere un'applicazione java che risponde alle richieste inviate a quel server, un JBOSS è molto di più, fornisce tecniche speciali per "distribuire" il software nell'ambiente di produzione, e altro ...

Tutti questi prodotti hanno la funzionalità "web server", ma si distinguono in ciò che accade dietro la richiesta http, ecco cosa sta generando la "risposta".

Per confondere un po 'di più, è possibile eseguire ASP.NET in un server Web Apache (che deve essere esteso con funzionalità per "eseguire codice .NET"). E ovviamente puoi costruire compositi di tutti questi prodotti, dal momento che il protocollo http può essere utilizzato dai proxy. Ad esempio, è possibile utilizzare un server Web Apache come punto di accesso client che si autentica su alcuni database e quindi inoltra le richieste a un server IIS firewalled che consente solo le connessioni dall'apache. Quindi è possibile implementare un'autenticazione (o di bilanciamento del carico) che può essere supportato sul server Windows ...

Speranza, che ha spianato alcune cose ...

rubare