zkk / VPS webserver



Aggiornamento del sistema

Mi collego al server ed eseguo i seguenti comandi per aggiornare il sistema, riavviando se necessario:

apt update
apt upgrade
shutdown -r now

Apertura porte del server

Verifico quali porte siano aperte nel server ed, eventualmente, apro quelle necessarie al www (porta 80) ed alla connessione sicura ssl (porta 443):

ufw status numbered
ufw allow 80
ufw allow 443

Installazione Nginx

Sempre dalla console ssh del server:

apt install nginx

Configurazione di una landing page

Elimino la configurazione di default ed inserisco la mia landing-page all’interno della cartella /var/www/start:

mv /var/www/html /var/www/start
mv /var/www/start/index-nginx-debian.html /var/www/start/index.html
rm /etc/nginx/sites-available/default
rm /etc/nginx/sites-enabled/default

Creo il server della landing page creando il relativo file:

touch /etc/nginx/sites-available/start

Ed inserendo il seguente codice:

server {
  listen 80 ;
  listen [::]:80 ;
  root /var/www/start;
  index index.html;
  server_name massimo-fontana.net www.massimo-fontana.net ;
  location / {
    try_files $uri $uri/ =404;
  }
}

Abilito il server creando il relativo collegamento e ricarico quindi il webserver:

ln -s /etc/nginx/sites-available/start /etc/nginx/sites-enabled/
systemctl reload nginx.service

Creazione di sotto domini

Allo stesso modo posso creare i vari sotto domini, ad esempio blog.max73.it:

mkdir /var/www/blog
touch /etc/nginx/sites-available/blog

Inserisco il seguente codice:

server {
  listen 80 ;
  listen [::]:80 ;
  root /var/www/blog;
  index index.html;
  server_name blog.massimo-fontana.net ;
  location / {
    try_files $uri $uri/ =404;
  }
}

Abilito il server e ricarico quindi nginx:

ln -s /etc/nginx/sites-available/blog /etc/nginx/sites-enabled/
systemctl reload nginx.service

Abilitazione della connessione sicura

apt install python3-certbot-nginx
certbot --nginx

Inserisco la email di Google, rispondo Yes per accettare i termini e le condizioni e No per l’iscrizione alla newsletter, quindi premo invio per certificare i domini creati con Nginx. Successivametne posso scegliere a quali domini rinnovare il certificato utilizzando il seguente comando:

certbot --nginx

Il rinnovo automatico è garantito dal servizio di systemd:

systemctl status certbot.timer