Nginx è uno dei più popolari web server presenti in rete. La sua popolarità è dovuta ad un modello event driven che lo ha reso molto performante rispetto ad altri server sul mercato.
Un dominio di secondo livello, ad esempio miosito.it
, può gestire infiniti
domini di terzo livello, www
per www.miosito.it
, media
per
media.miosito.it
, e così via. Tutti questi domini di terzo livello possono
essere gestiti utilizzando Nginx.
Negli ultimi anni, soprattutto per avere URL non troppo lunghe, sempre più siti
gestiscono come dominio di terzo livello un dominio non-www
. Quindi per il
dominio di secondo livello miosito.it
, il dominio di terzo livello risponde
proprio alla URL miosito.it
.
Devi considerare tuttavia che non è una buona pratica, soprattutto in ottica
SEO, mantenere attivi sia il sottodominio www
che non-www
. I bot di
indicizzazione dei motori di ricerca vedono infatti i due sottodomini come
separati e quindi eseguono diverse indicizzazioni, penalizzando il nostro sito.
Per ovviare a tale problema, occorre stabilire quale dei due sottodomini utilizzare, ed una volta eseguita la scelta istruire Nginx per eseguire redirect da un sottodominio all'altro. Attraverso i redirect Nginx manterrai attivo uno solo dei due sottodomini, migliorando nel complesso l'efficienza del sito.
Da www
a non-www
Per eseguire il redirect dal sottodominio www
al non-www
, inserire nel
vhost, relativo al proprio sito, le seguenti righe:
server {
listen 80;
server_name www.miosito.it;
return 301 http://miosito.it$request_uri;
}
server {
listen 80;
root PROJECT_BASE_DIR;
index index.html;
server_name miosito.it;
}
Nella precedente specifica, sostituire PROJECT_BASE_DIR
con il path assoluto
alla cartella contenente il progetto, e miosito.it
con il nome del tuo
dominio.
Per verificare la corretta configurazione del server eseguire:
curl -vv www.miosito.it
curl -vv miosito.it
Noterai che nella prima chiamata avrai un redirect mentre la seconda chiamata restituisce il risultato atteso.
Da non-www
a www
Per eseguire il redirect dal sottodominio non-www
al www
, inserire nel
vhost, relativo al proprio sito, le seguenti righe:
server {
listen 80;
server_name miosito.it;
return 301 http://www.miosito.it$request_uri;
}
server {
listen 80;
root PROJECT_BASE_DIR;
index index.html;
server_name www.miosito.it;
}
Nella precedente specifica, sostituire PROJECT_BASE_DIR
con il path assoluto
alla cartella contenente il progetto, e miosito.it
con il nome del tuo
dominio.
Per verificare la corretta configurazione del server eseguire:
curl -vv miosito.it
curl -vv www.miosito.it
Noterai che nella prima chiamata avrai un redirect mentre la seconda chiamata restituisce il risultato atteso.
Conclusioni
Nginx può essere configurato per eseguire redirect tra sottodomini.
In questo articolo abbiamo visto come eseguire redirect tra un sottodominio
www
ed uno non-www
e viceversa.