Protéger un site sous NGINX par un mot de passe

NGINX – super serveur web – permet de faire plein de choses mais ne gère pas les bons fichiers .htaccess auxquels Apache a pu vous habituer. Alors comment faire pour protéger un site sous NGINX par un mot de passe ?

Déjà il faut vous créer un joli petit fichier contenant un utilisateur :
par exemple avec :

sh -c "echo -n 'gonzague:' >> /etc/nginx/.htpasswd"

puis générer le mot de passe crypté pour cet utilisateur qu’on va aller ajouter au fichier :

sh -c "openssl passwd -apr1 >> /etc/nginx/.htpasswd"

Puis il faut aller éditer le site qui vous intéresse dans /etc/nginx/sites-available. Il est possible de protéger tout un hôte virtuel ou juste une « location » par exemple ici :

  location / {
        try_files $uri $uri/ =404;
        auth_basic "Restricted Content";
        auth_basic_user_file /etc/nginx/.htpasswd;
    }

Et hop le tour est joué !

Tags: ,