Configurazione nuova VPS: NGINX e sito statico

Capitoli precedenti
- Configurazione nuova VPS: nuovo utente, chiave SSH, firewall.

Nel capitolo precedente abbiamo configurato la VPS destinata ad ospitare il mio sito con una manciata di funzionalità minime: utente non privilegiato, chiave SSH, firewall. In questo step alziamo il livello, con l'obiettivo di avere un sito statico collegato a un dominio di secondo livello.

Nota: questo lavoro presuppone che si possegga già un dominio di cui sia possibile modificare i DNS. Il primo passo che possiamo levarci dai piedi è proprio modificare il DNS, aggiungendo due record di tipo A che faremo puntare a nomedominio.estensione. e *.nomedominio.estensione. (per catturare i sottodomini tipo www. ...). Ricordarsi che i record A hanno sempre il punto finale!

Per prima cosa andiamo a installare NGINX. NGINX è un software che fa un sacco di cose, e per adesso a noi ne serve solo una: un server web. L'installazione, su ubuntu, avviene prevedibilmente come:

sudo apt-get install nginx

I file di configurazione di NGINX sono installati nel percorso /etc/nginx. In particolar modo, a noi interessano due cartelle: la cartella /etc/nginx/sites-available e la cartella /etc/nginx/sites-enabled. La prima contiene i file di configurazione di tutti i siti disponibili in questa installazione; la seconda contiene i file di configurazione dei siti attivi (come link simbolico al corrispondente file nella prima).

Andiamo dunque a creare un file per il nostro sito statico, che verrà ospitato nella cartella /var/www/sito:

sudo vim /etc/nginx/sites-available/sito

Il contenuto sarà qualcosa del tipo:

server{
  listen 80;
  server_name dominio.estensione www.dominio.estensione;
  location / {
    root /var/www/sito;
  }
}

A questo punto possiamo eliminare dalla sites-enabled il default preinstallato (andremo giusto a eliminare il link) e creare un link al nostro nuovo file:

sudo rm /etc/nginx/sites-enabled/default
sudo ln -s /etc/nginx/sites-available/sito /etc/nginx/sites-enables/sito

A questo punto bisogna creare la cartella root del sito, metterci dentro qualcosa e assicurarsi che sia leggibile dall'utente di nginx (che di default è l'utente www-data):

sudo mkdir /var/www/sito
sudo cat "<html><body><h1>CIAO!!!</h1></body></html>" > /var/www/sito/index.html
sudo chown -R www-data /var/www/sito

E riavviare nginx:

sudo service nginx restart

A questo punto, se puntiamo il browser al dominio di cui sopra (con o senza www), dovremmo vedere la pagina di prova.