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.