Maison  >  Article  >  Opération et maintenance  >  Comment utiliser htpasswd pour protéger par mot de passe le site Web dans Nginx

Comment utiliser htpasswd pour protéger par mot de passe le site Web dans Nginx

王林
王林avant
2023-05-17 15:49:06943parcourir

L'effet final est similaire (l'interface des différents navigateurs est différente) :

Comment utiliser htpasswd pour protéger par mot de passe le site Web dans Nginx

Si l'authentification échoue, une erreur http sera signalée : autorisation 401 requise.
Pour implémenter une telle fonction, vous devez modifier la configuration du serveur et définir le nom d'utilisateur et le mot de passe pour la connexion.
Nous devons d'abord modifier la configuration du serveur nginx du site Web. Pour le serveur Ubuntu, ce fichier de configuration se trouve généralement dans /etc/nginx/sites-enabled/. Par exemple, j'utilise le fichier de configuration par défaut /etc/nginx/sites. -enabled/default ici. Faites un exemple :

Copiez le code Le code est le suivant :

server {
server_name www.fancycedar.info
root /www/fancycedar

# ...
location / {
# Ajoutez les deux lignes suivantes
auth_basic "restricted" ;
auth_basic_user_file htpasswd;
# ...
}

# ...
}

Ensuite, vous devez créer le fichier htpasswd. Il y a quelques détails auxquels il faut prêter attention. : Le chemin de
htpasswd
est au même niveau que le répertoire nginx.conf suffit. Pour les serveurs Ubuntu, il se trouve généralement sous /etc/nginx/. Le contenu de
htpasswd
Chaque ligne représente un utilisateur et le format est nom d'utilisateur : mot de passe. Mais veuillez noter que le mot de passe ici n'est pas du texte brut, mais une chaîne cryptée par crypt(3).
Vous pouvez utiliser un morceau de code php pour générer le mot de passe dans htpasswd :

Copiez le code Le code est le suivant :

// Mot de passe en texte brut
$password = 'some password';
$password = crypt( $password, base64_encode($password));
// Obtenez le mot de passe crypté
echo $password;

Écrivez ensuite la chaîne dans le fichier htpasswd :


Copiez le code Le code est le suivant :

username1:xucqmk13tfooe

username2 ; prêt ?
Une fois les préparatifs ci-dessus terminés, nous pouvons recharger ou redémarrer le serveur nginx :

Copiez le code Le code est le suivant :

sudo /etc/init.d/ nginx reload

# ou

sudo /etc/init.d/nginx restart

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer