Heim  >  Artikel  >  Betrieb und Instandhaltung  >  So verwenden Sie Nginx zur Implementierung der HTTP-Basisauthentifizierung

So verwenden Sie Nginx zur Implementierung der HTTP-Basisauthentifizierung

WBOY
WBOYOriginal
2023-06-10 10:36:142491Durchsuche

Nginx ist ein leistungsstarker, zuverlässiger Webserver und Reverse-Proxy-Server. Zusätzlich zu seinen leistungsstarken Lastausgleichs- und Caching-Funktionen unterstützt Nginx auch die HTTP-Basisauthentifizierung. Die HTTP-Basisauthentifizierung ist eine einfache Authentifizierungsmethode, die die Identität des Benutzers überprüft, indem sie einen Benutzernamen und ein Kennwort in den Anforderungsheader einfügt. In diesem Artikel erfahren Sie, wie Sie die HTTP-Basisauthentifizierung mit Nginx implementieren.

1. Benutzernamen und Passwort festlegen

Zuerst müssen wir eine Passwortdatei erstellen. Wir können den Befehl htpasswd verwenden, um diese Datei zu erstellen. htpasswd ist ein Befehlszeilentool zum Verwalten von HTTP-Basisauthentifizierungskennwörtern.

Wir können den folgenden Befehl im Terminal verwenden, um eine Passwortdatei zu erstellen:

htpasswd -c /etc/nginx/.htpasswd username

Darunter bedeutet -c, eine neue Passwortdatei zu erstellen, /etc/nginx/.htpasswd ist der Pfad zur Passwortdatei und der Benutzername ist der Benutzername, den wir hinzufügen möchten. Nachdem Sie diesen Befehl ausgeführt haben, werden Sie zur Eingabe Ihres Passworts aufgefordert. Nach Eingabe des Passworts hasht htpasswd das Passwort und speichert es in der Passwortdatei.

Wenn Sie weitere Benutzer zur Passwortdatei hinzufügen möchten, verwenden Sie den folgenden Befehl:

htpasswd /etc/nginx/.htpasswd username2

Dieser Befehl verfügt nicht über die Option -c, da unsere Passwortdatei bereits existiert. Nach Eingabe des Befehls werden Sie zur Eingabe Ihres Passworts aufgefordert. Nach der Eingabe hasht htpasswd den Benutzernamen und das Passwort und fügt sie einer Passwortdatei hinzu.

2. Grundlegende Authentifizierung in Nginx anwenden

Jetzt haben wir eine Passwortdatei erstellt, die Benutzernamen und Passwort-Hashes enthält. Als nächstes müssen wir die HTTP-Basisauthentifizierung in Nginx anwenden.

Wir müssen die folgenden Anweisungen im Serverblock oder Standortblock hinzufügen:

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

Die erste Anweisung weist Nginx an, eine Basisauthentifizierung für die Anfrage durchzuführen und „Eingeschränkt“ als Beschreibungsinformation im Popup-Anmeldefeld anzuzeigen.

Die zweite Anweisung weist Nginx an, die Datei /usr/share/nginx/.htpasswd zur Authentifizierung des Benutzers zu verwenden.

Zum Beispiel können wir den folgenden Code in den Standardserverblock von Nginx einfügen:

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;
}

Jetzt haben wir erfolgreich die Basisauthentifizierung zu unserem Nginx-Server hinzugefügt.

3. Testen Sie die HTTP-Basisauthentifizierung

Jetzt testen wir die Authentifizierungsfunktion, die wir gerade eingerichtet haben. Wir können mit Tools wie Curl oder Firefox testen.

Test mit Curl:

curl -I http://localhost

Die Befehlszeile fordert Sie zur Eingabe Ihres Benutzernamens und Passworts auf. Nachdem Sie den richtigen Benutzernamen und das richtige Passwort eingegeben haben, können Sie den folgenden Code im HTTP-Antwortheader sehen:

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

Testen mit Firefox:

Geben Sie in Firefox die Serveradresse http://localhost ein. Firefox öffnet ein Fenster mit dem Wort „Eingeschränkt“ und einer Beschreibung und fordert Sie auf, Ihren Benutzernamen und Ihr Passwort einzugeben. Nachdem Sie den richtigen Benutzernamen und das richtige Passwort eingegeben haben, werden Sie zur Standardwebseite Ihres Servers weitergeleitet.

Zusammenfassung

In diesem Artikel wird erläutert, wie Sie mit Nginx die HTTP-Basisauthentifizierung implementieren. HTTP Basic Authentication ist eine einfache, aber effektive Authentifizierungsmethode, mit der sensible Ressourcen eines Webservers geschützt werden können. Wir können die HTTP-Basisauthentifizierung ganz einfach zu unserem Nginx-Server hinzufügen, indem wir zunächst eine Passwortdatei mit dem Befehl htpasswd erstellen und dann die Anweisung „Basic Authentication“ in der Nginx-Konfiguration anwenden.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie Nginx zur Implementierung der HTTP-Basisauthentifizierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn