Sites available, sites enabled
Urania Logico - nginx IT techNginx è molto carino ma io spesso confondevo queste due cartelle e creavo caos. In realtà è una suddivisione che a me non è particolarmente utile, ma potrebbe essere comoda qualora avessi dei siti già configurati, ma che non sono ancora abilitati, e quindi online.
I file di configurazione [sites-available]
Ogni sito ha bisogno di un file di configurazione del virtual host, che in nginx si chiamano server blocks, nella cartella /etc/nginx/sites-available
, il nome del file si riferisce direttamente al sito in questione, in questo caso www.gefn.net
, ecco un esempio di file privato di tutto ciò che viene aggiunto da Certbot per i certificati SSL.
server { # esempio di un sito in ipv4/ipv6 che "ascolta" sul dominio gefn.net
listen 80; # default
listen [::]:80;
server_name gefn.net www.gefn.net;
root /var/www/gefn.net/html; # i file del sito
index index.html;
location / {
try_files $uri $uri/ =404;
}
location /projects {
auth_basic "utente";
auth_basic_user_file /etc/nginx/htpasswd;
} # accesso con password
}
I collegamenti [sites-enabled]
Visto che abbiamo i file dei server blocks, non ci resta che abilitarli. Possiamo dunque creare dei link simbolici ai file contenuti in /etc/nginx/sites-available
nella cartella /etc/nginx/sites-enabled
, che nginx leggerà durante il suo startup. Creare dei file di configurazione direttamente in questa cartella potrebbe alla lunga creare problemi di file del tipo www.gefn.net.old
che creeranno problemi sia con nginx che certbot.
Per creare i collegamenti simbolici utilizziamo il comando ln
con il flag -s
che indica che il collegamento è simbolico, ovvero un collegamento diretto al file, una sorta di pointer, senza crearne una copia come accade per gli hard links.
$ sudo ln -s /etc/nginx/sites-available/gefn.net /etc/nginx/sites-enabled/
$ sudo ln -s /etc/nginx/sites-available/test.com /etc/nginx/sites-enabled/
Riavvio di nginx
Per essere sicure che non vi siano errori di sintassi nei nostri file, è sempre bene testare nginx con $ sudo nginx -t
.
Se non ci sono problemi, possiamo riavviare nginx per abilitare effettivamente le modifiche con $ sudo systemctl restart nginx
.
Ora tutti i siti abilitati dovrebbero essere serviti. I file .old
possono essere eliminati.