Nginx : Limiter l’accès à un dossier ou site via htpasswd

Nginx : Limiter l'accés via htaccess et htpasswd

Nginx htpasswd

Vous souhaitez limiter l’accès à une partie de votre site qui est servi par Nginx, comme vous le faisiez avec Apache en utilisant les fichier htaccess et htpasswd ?

Mauvaise nouvelle : pas de fichier htaccess sous Nginx :(
Bonne nouvelle : vous pouvez quand même utiliser un fichier htpasswd :)

Sous Nginx plutôt que de mettre vos directives de sécurisation de répertoire (ou site ou dossier) dans un fichier .htaccess, on va les mettre directement dans le fichier de configuration du site.

Imaginons que vous souhaitiez sécuriser la racine de votre site qui est sous l’arborescence /var/www/mon-site/

Editer le fichier de configuration de votre site :

 nano /etc/nginx/sites-available/mon-site.com

Et mettez les directives suivantes :

.
.
root /var/www/mon-site;
.
.
# Limitation d'accès
Location / {
      auth_basic "Vous devez vous authentifier";
      auth_basic_user_file /etc/nginx/htpasswd/mon-site.com;
}

Il ne reste plus qu’a créer le fichier contenant les couple login – mots de passe.

Pour ma par je les mets tous dans un dossier /etc/nginx/htpasswd, commencez par le créer si il n’existe pas sur votre serveur :

mkdir /etc/nginx/htpasswd/

Ensuite il suffit d’utiliser betement l’outil htpasswd d’Apache

htpasswd -b -c /etc/nginx/htpasswd/mon-site.com utilisateur mot-de-pass

Et voila !
Enfin non pas tout ç fait il vous faut relancer Nginx pour que cette limitation d’accès soit effective.

Partagez cet article

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>