Sites available, sites enabled

Urania Logico - nginx IT tech


Nginx è 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.





☽ ❍ ☾

hello [@] gefn [.] net
1A53 27C9 550E BB6E 320D 4F7B 7C94 39CE D32D B01D