Richiedi Informazioni

Apache vs. Nginx: qual è la scelta migliore per il tuo server dedicato?

Nel mercato dei server Web, Apache da diverso tempo mantiene il primato di applicativo più utilizzato, seguito a grande distanza da IIS di Microsoft.

Al terzo posto, e a pochi punti percentuali da IIS, segue Nginx. Forse un nome sconosciuto ai più, ma che sta lentamente guadagnando terreno sui suoi rivali.

Ma cos’ha di speciale questo server Web, e da cosa differisce rispetto ad Apache? Scopriamolo insieme.

Server asincrono e server process-based a confronto.
L’architettura di Nginx e Apache differisce notevolmente: mentre il primo ha uno schema di funzionamento asincrono, il secondo è di tipo process-based. La differenza si può riassumere brevemente in questi termini:

Nginx e Lighttpd sono probabilmente i due server asincroni più conosciuti e Apache è indubbiamente è il miglior server process-based. […] il vantaggio principale dell’approccio asincrono è la scalabilità. In un server process-based, ogni connessione simultanea richiede un thread che implica un overhead significativo. Un server asincrono, dall’altra parte, è event-driven e gestisce le richieste in un singolo (o almeno, pochi) thread.

Mentre un server process-based può avere di media delle prestazioni alla pari con un server asincrono sotto carichi leggeri, con un carico più pesante di solito consuma più RAM con un significativo degrado delle performance.

Dunque, Ngnix è migliore di Apache?
Nginx ha dei vantaggi, ma non vuol dire che sia migliore di Apache, e viceversa; tutto dipende dalla capacità dalla tua infrastruttura e dal volume di dati da erogare. Per questo è necessario quantificare il traffico generato, il numero di richieste effettuate, l’eventuale distribuzione del carico su più frontend.

Nginx non ha le funzionalità di Apache (ad esempio i Multi-Processing Modules) ma funziona egregiamente come reverse proxy e load balancer, il che lo rendono scalabile e adatto in diverse situazioni, motivo per cui qui in Level iP lo usiamo quotidianamente su diverse infrastrutture, e con ottimi risultati.

Ok, ma non ci capisco molto di server, mi fai un esempio?
Beh, semplicemente Nginx è perfetto per servire file statici quali immagini, file javascript, file css. Questi file non vengono generalmente renderizzati in modo dinamico da uno scripting language (esempio, php, ruby) e quindi Nginx li serve direttamente senza caricare in memoria moduli di scripting.

Visto che ha un impatto in memoria molto basso, quindi, Nginx potrebbe essere usato per servire file statici scaricando il ben più pesante apache. Se d’altro canto sei in grado di effettuare una configurazione di Php/Ruby/Phyton in modalità CGI oppure in modalità Application Server, allora Nginx è un ottimo reverse proxy in grado di effettuare caching.

Sembra fighissimo! Ma ancora ne capisco poco
In questo caso siamo qui per aiutarti: se hai ancora qualche dubbio e desideri avere delle informazioni su come siamo in grado di configurare Nginx (ma anche Apache) in modo da ottimizzare le performance del tuo server contattaci subito. Sapremo consigliarti la soluzione migliore.