Maison  >  Article  >  Opération et maintenance  >  Comment utiliser Nginx pour implémenter l'authentification de base HTTP

Comment utiliser Nginx pour implémenter l'authentification de base HTTP

WBOY
WBOYoriginal
2023-06-10 10:36:142425parcourir

Nginx est un serveur Web et un serveur proxy inverse performant et fiable. En plus de ses puissantes capacités d'équilibrage de charge et de mise en cache, Nginx prend également en charge l'authentification de base HTTP. L'authentification de base HTTP est une méthode d'authentification simple qui vérifie l'identité de l'utilisateur en ajoutant un nom d'utilisateur et un mot de passe dans l'en-tête de la requête. Dans cet article, nous apprendrons comment implémenter l'authentification de base HTTP à l'aide de Nginx.

1. Définissez le nom d'utilisateur et le mot de passe

Tout d'abord, nous devons créer un fichier de mot de passe. Nous pouvons utiliser la commande htpasswd pour créer ce fichier. htpasswd est un outil de ligne de commande permettant de gérer les mots de passe d'authentification de base HTTP.

Nous pouvons utiliser la commande suivante dans le terminal pour créer un fichier de mot de passe :

htpasswd -c /etc/nginx/.htpasswd username

Parmi eux, -c signifie créer un nouveau fichier de mot de passe, /etc/nginx/ .htpasswd est le chemin d'accès au fichier de mots de passe, le nom d'utilisateur est le nom d'utilisateur que nous voulons ajouter. Après avoir exécuté cette commande, vous serez invité à saisir votre mot de passe. Après avoir entré le mot de passe, htpasswd hachera le mot de passe et le stockera dans le fichier de mot de passe.

Si vous souhaitez ajouter des utilisateurs supplémentaires au fichier de mots de passe, utilisez la commande suivante :

htpasswd /etc/nginx/.htpasswd username2

Cette commande n'a pas l'option -c car notre fichier de mots de passe existe déjà. Après avoir entré la commande, vous serez invité à saisir votre mot de passe. Une fois entré, htpasswd hache et ajoute le nom d'utilisateur et le mot de passe à un fichier de mots de passe.

2. Appliquer l'authentification de base dans Nginx

Maintenant, nous avons créé un fichier de mot de passe contenant les hachages du nom d'utilisateur et du mot de passe. Ensuite, nous devons appliquer l'authentification de base HTTP dans Nginx.

Nous devons ajouter les instructions suivantes dans le bloc serveur ou le bloc d'emplacement :

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

La première instruction indique à Nginx d'effectuer une authentification de base sur la demande et de l'afficher dans la pop -up boîte de connexion « Restreint » comme information de description.

La deuxième directive indique à Nginx d'utiliser le fichier /usr/share/nginx/.htpasswd pour authentifier l'utilisateur.

Par exemple, nous pouvons ajouter le code suivant dans le bloc serveur par défaut de Nginx :

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    root /var/www/html;
    index index.html index.htm index.nginx-debian.html;
    auth_basic "Restricted";
    auth_basic_user_file /etc/nginx/.htpasswd;
}

Maintenant, nous avons ajouté avec succès l'authentification de base à notre serveur Nginx.

3. Testez l'authentification de base HTTP

Testons maintenant la fonction d'authentification que nous venons de mettre en place. Nous pouvons utiliser curl ou Firefox et d'autres outils pour tester.

Test avec curl :

curl -I http://localhost

La ligne de commande vous demandera votre nom d'utilisateur et votre mot de passe. Après avoir saisi le nom d'utilisateur et le mot de passe corrects, vous pouvez voir le code suivant inclus dans l'en-tête de la réponse HTTP :

HTTP/1.1 200 OK
Server: nginx/1.14.0 (Ubuntu)
...

Test avec Firefox :

Saisissez l'adresse du serveur dans Firefox http : // /localhost. Firefox ouvrira une fenêtre avec le mot « Restreint » et une description, vous invitant à saisir votre nom d'utilisateur et votre mot de passe. Après avoir entré le nom d'utilisateur et le mot de passe corrects, vous serez redirigé vers la page Web par défaut de votre serveur.

Summary

Cet article explique comment utiliser Nginx pour implémenter l'authentification de base HTTP. L'authentification HTTP de base est une méthode d'authentification simple mais efficace qui peut être utilisée pour protéger les ressources sensibles d'un serveur Web. Nous pouvons facilement ajouter l'authentification HTTP de base à notre serveur Nginx en créant d'abord un fichier de mot de passe à l'aide de la commande htpasswd, puis en appliquant la directive d'authentification de base dans la configuration Nginx.

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:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn