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é !