A volte può capitare di dover rendere privato un sito (o una sezione di esso) pur non volendo implementare un sistema di autorizzazione completo.
La prima cosa da fare è creare il file che memorizzerà le credenziali quindi come utente root digitiamo:
cd /etc/nginx
echo "_nome_utente_:`openssl passwd -apr1 _password_`" >> htpasswd
Ricordati di sostituire a _nome_utente_ e _password_ le credenziali che vorrai usare.
Adesso dobbiamo modificare il file di configurazione del sito per attivare la richiesta di autenticazione.
Apriamo in modifica uno dei file che si trova in /etc/nginx/sites-enabled e aggiungiamo:
auth_basic "Restrictred";
auth_basic_user_file /etc/nginx/htpasswd;
direttamente nella sezione “server” (se vogliamo attivare la protezione per tutto il sito) oppure in una delle sezioni “location” (per proteggerne solo una parte).
Se abbiamo attivato la protezione per tutto il sito ma vogliamo rendere liberamente accessibile una sezione possiamo aggiungere (nella opportuna sezione “location” del file):
auth_basic off;
Abbiamo terminato le configurazioni.
Verifichiamo che tutto sia a posto con:
nginx -t
e poi riavviamo il web-server:
systemctl restart nginx
Se tutto è andato come deve ora quando richiederemo una delle sezioni che abbiamo protetto ci verrà richiesto di autenticarci: