Categorie
Webserver

Nginx, 9 ragioni per cui dovresti iniziare a usarlo subito

Di fronte al successo e alla crescita di Nginx, diventa importante analizzare le ragioni per cui sarebbe interessante passare dal webserver Apache a quello russo. Noi possiamo fornirvene 9, svelandovi anche gli svantaggi del webserver che sta spopolando in Rete

Nginx è un nome che ultimamente ricorre spesso sulle nostre pagine: lo abbiamo usato nel configurare il nostro server GitLab e nell’installare WordPress su server virtuale, ne abbiamo parlato appena il webserver ha ricevuto il supporto ufficiale di Ubuntu e abbiamo seguito le varie evoluzioni nella lotta fra i webserver, assistendo alla crescita di Nginx, al raggiungimento del secondo posto sul podio prima di Microsoft, fino ad assistere al suo sorpasso su Apache.

Il webserver russo inizia dunque a spopolare anche su siti molto famosi, come The Verge, e su piattaforme cloud come Amazon AWS e il motivo del suo successo sarebbe da ricercare negli incredibili balzi in avanti compiuti fin dalla sua nascita, avvenuta nel 2004. I vari aggiornamenti, così come il nuovo rilascio avvenuto meno di un mese fa, consegnano nelle mano degli amministratori IT un webserver velocissimo e dotato di nuovissime tecnologie come l’IPv6 e SPDY, tali da rendere il webserver secondo solo ai server a utilizzo esclusivo di Google.

Di fronte a questo successo e a questa capacità di crescita, diventa importante analizzare le ragioni per cui sarebbe interessante passare dal webserver Apache a Nginx. Noi possiamo fornirvene 9 che elenchiamo di seguito e al termine vi sveliamo anche gli svantaggi del webserver russo e quando è il caso di affiancare e non rimpiazzare Apache con Nginx.

Buona lettura!

1.      Nginx è facile da installare e configurare

Lungi dal dover seguire pratiche un po’ arcaiche risalenti a quando il webserver non era presente nelle distribuzioni ed era necessario la compilazione dei sorgenti, l’installazione attuale di Nginx è semplicissima e si può effettuare da qualsiasi bash con una sola riga di comando. Nello specifico sulle distribuzioni Ubuntu e Debian scriveremo:

apt-get install nginx

mentre per CentOS, Red Hat Linux Enterprise e Fedora digiteremo:

yum install nginx

Allo stesso modo, anche la configurazione dei file è alla portata di qualsiasi sistemista Linux che abbia sufficiente dimestichezza con questa tipologia di procedure. Su CentOS il file di interesse si trova in /etc/nginx/nginx.conf che rappresenta il file di configurazione principale del webserver russo ed è proprio qui che possiamo includere il nostro host virtuale in questo modo:

include “etc/nginx/conf.d/*.conf”;

a patto di creare poi i file corrispodenti agli host virtuali che voglia configurare in:

/etc/nginx/conf.d/firssite.com.conf

/etc/nginx/conf.d/secondsite.com.conf

Il resto del file di configurazione va bene già così com’è, a meno che non si voglia specificare qualche direttiva proxy personalizzata alla fine della sezione http.

Nginx, 9 ragioni per cui dovresti iniziare a usarlo subito

L’altro file di interesse è quello presente al percorso /etc/nginx/sites-available/default dove troviamo una configurazione simile a quella di Apache.

Nginx, 9 ragioni per cui dovresti iniziare a usarlo subito

Le informazioni del file che vi mostriamo nell’immagine ci ricordano che Nginx può agire anche come un proxy, per cui riceve tutte le richieste in ingresso e le smista verso altri sistemi e, nel caso specifico, verso Apache che resta in ascolto sulla porta 8080. Affinché Nginx e Apache convivano, come vedremo più avanti, è necessario che il webserver tradizionale si metta in ascolto sulla porta 8080 e non sulla classica 80 e questa modifica possiamo apportarla agendo direttamente sul file /etc/apache/ports.conf.

Infine, a configurazione ultimata ricordiamoci di riavviare sia apache che nginx come siamo abituati sulla nostra distribuzione.

2.      Nginx è superveloce a servire i file statici

La maggior parte delle CDN come CloudFlare e tante altre usano Nginx e non è un caso. Nginx garantisce le performance migliori proprio con i file statici come ZIP, immagini di qualsiasi formato, documenti PDF, file statici in HTML e tanti altri ancora. Inoltre, Nginx consente di configurare anche una cache per tutti o parte di questi file, ricevendo così un ulteriore spinta di velocità nel servire le richieste concorrenti:

location ~* .(jpg|jpeg|png|gif|ico|css|js)$ {

expires 365d;

}

In questo caso, i file con l’estensione indicata vengono posti in cache per i successivi 365 giorni.

3.      Nginx può trasformare i contenuti dinamici in contenuti statici

Nginx può essere configurato per conservare in cache i contenuti dinamici di cui funge da proxy, ricorrendo al modulo HttpProxyModule, permettendoci così di conservare in cache i contenuti in modo efficiente senza agire sul codice applicativo.

4.      Nginx è capace di gestire connessioni concorrenti in numero quadruplo ad Apache

Non solo Nginx si rivela il webserver più leggero e meno esoso di memoria fra quelli disponibili, ma preserva dei tempi di risposta eccellenti anche in presenza di un numero di connessioni concorrenti elevato, con un basso utilizzo di risorse. Nginx è infatti capace di gestire un numero pari a quattro volte tanto delle connessioni concorrenti gestite da Apache.
Nginx, 9 ragioni per cui dovresti iniziare a usarlo subitoNginx, 9 ragioni per cui dovresti iniziare a usarlo subito

5.      Nginx è compatibile con tutte le web apps più popolari

Che usiamo WordPress, Drupal, Joomla o qualsiasi altro CMS o web app, Nginx non ha problemi di funzionamento, neanche in presenza di una piattaforma Python o Ruby. Nginx si sostituisce ad Apache senza problemi o lo affianca quando necessario.

6.      Con Nginx, la scalabilità non ha confine

Una delle caratteristiche che più colpisce di Nginx è la capacità di supportare nativamente il load balancing, per cui possiamo utilizzare questa tecnica per scalare velocemente i server HTTP. Con il load balancing di Nginx possiamo distribuire il traffico fra differenti server, definiti in un gruppo nel file nginx.conf di cui abbiamo parlato prima. In questo modo, ad esempio, se in un particolare momento operativo dobbiamo aggiungere un nuovo webserver al nostro stack LAMP, possiamo semplicemente inserirlo nel gruppo di server gestito dal file nginx.conf. In seguito al riavvio, Nginx effettuerà le operazioni di load balancing fra tutti i server indicati nel file di configurazione, compreso l’ultimo appena inserito.

7.      Nginx è SEO-friendly

Può sembrare una sciocchezza, ma il fatto che WordPress.com, tumblr, Pinterest, Instagram, Yahoo!, Youtube e tanti altri, come le CDN citate poc’anzi, usino Nginx è dettato dalla sua velocità, che sul Web è importantissima ai fini SEO, permettendo ai siti più veloci un migliore posizionamento nella SERP di Google. Per soddisfare i criteri di velocità imposti da Mountain View (che oltretutto fornisce Google PageSpeed per verificare la velocità dei nostri siti) la risposta giusta sembra proprio essere Nginx.

8.      Nginx è sostenuto da una community molto attiva

Se ci avviciniamo a Nginx per la prima volta e abbiamo incertezze su come procedere, possiamo rivolgerci alla community online che risulta molto attiva e che fornisce molti howto e guide semplici da seguire in ogni occasione.

9.      Nginx garantisce comunque un supporto professionale

Se vogliamo usare Nginx in ambiente enterprise, possiamo comunque affidarci al supporto professionale dell’azienda Nginx Inc. che dietro compenso ci aiuta a gestire e configurare siti Web o app di complessità superiore.

Gli svantaggi di Nginx

Non sono tanti, ma di certo il webserver russo non ha solo vantaggi, altrimenti Apache sarebbe stato già seppellito da tempo. Gli svantaggi principali si hanno nell’uso dei pannelli di controllo, nelle direttive di rewrite e nei moduli disponibili, che potrebbero non offrire il modulo particolare di cui siamo alla ricerca noi. Certo è che tutte queste caratteristiche sono necessarie spesso in ambienti super-evoluti, per cui Nginx si rivela comunque molto efficace nella maggior parte dei casi d’uso.

Nginx come compagno di Apache

Infine, come abbiamo già detto all’inizio, ci preme ricordare che non è detto che Nginx (con PHP-FPM) sostituisca completamente Apache, ma può anche affiancarlo, funzionando come cache o reverse proxy del webserver tradizionale. In una configurazione del genere, i contenuti statici vengono gestiti dal webserver russo, mentre quelli dinamici sono demandati ad Apache e, in questo modo, si uniscono la velocità e la scalabilità di Nginx alla completezza di Apache.

8 risposte su “Nginx, 9 ragioni per cui dovresti iniziare a usarlo subito”

[…] Abbiamo dimostrato che in siti che offrono contenuti statici e che hanno un elevato numero di connessioni concomitanti, Nginx si comporta meglio di Apache, grazie al modello di funzionamento asincrono su cui si basa, che si differenzia dal modello a thread di Apache perché permette di servire le richieste sugli oggetti in modo contemporaneo, come eventi individuali e indipendenti fra loro. […]

Purtroppo NGINX non è compatibile con i files .htaccess di Apache (e non dispone nemmeno di strumenti atti a convertirli) per cui alcune web application che creano dinamicamente questi files di configurazione a seconda dei parametri impostati (es. WordPress e molti suoi moduli) non funzioneranno correttamente. In tal caso sarà necessario scrivere una configurazione equivalente a mano.

@Massimiliano Alessandri
Se ti applichi ci riesci.
Intanto ti smonto punto per punto. Il file htaccess può essere convertito mediante questi tool online:
http://www.anilcetin.com
https://timmehosting.de/htaccess-converter
http://winginx.com/en/htaccess
I maggiori CMS stanno abbandonando Apache per passare a Nginx, primo tra tutti WordPress.
I moduli, nella stragrande maggioranza dei casi, sono processati dal core dei cms, solo in alcuni casi vanno converiti.
Chi ti scrive è un sistemista, quindi prima di pubblicare informazioni inesatte applicati, informati e soprattutto studiati la documentazione di questo webserver.

Caro sistemista, chi ti scrive è un collega con un po’ di esperienza alle spalle, l’autore dell’articolo per “moduli” intende quelli di Apache non dei vari CMS, forse hai problemi a caricare il modulo “umiltà” sul tuo sistema?

Buone Feste a tutti.

Cari esperti, caricando il modulo “non ne so mezza”, mi chiedevo se questo articolo che presenta così positivamente nginx, sia ancora valido.

Che ne pensate?

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.