Accès restreint Nginx

Voir : https://www.digitalocean.com/community/tutorials/how-to-set-up-http-authentication-with-nginx-on-ubuntu-12-10

sudo apt-get install apache2-utils
$ sudo htpasswd -c /etc/nginx/.htpasswd exampleuser New password: Re-type new password: Adding password for user exampleuser
chmod 640 /etc/nginx/.htpasswd exampleuser chown www-data:www-data /etc/nginx/.htpasswd

La structure du fichier htpasswd est sous la forme suivante :

login:Hash_mdp

auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;

Exemple :

server {
listen portnumber;
server_name ip_address;
location / {
root /var/www/mywebsite.com;
index index.html index.htm;
auth_basic "Restricted"; #For Basic Auth
auth_basic_user_file /etc/nginx/.htpasswd; #For Basic Auth
}
}

On vérifie la configuration de Nginx.

nginx -t

Si ok, on la recharge

service nginx reload

Appliquez cette configuration que pour les sites en HTTPS seulement. Sinon, le mot de passe sera envoyé en clair !