Heim > Artikel > Betrieb und Instandhaltung > So konfigurieren Sie die Nginx-Benutzerauthentifizierungsseite
Vorwort
Anwendungsszenario: Wahrscheinlich müssen externe Benutzer auf die interne Website zugreifen, und gleichzeitig können Besuchern keine Website-Kontoberechtigungen erteilt werden, sodass auf Nginx-Ebene Einschränkungen auferlegt werden. Bei Outsourcing-Projekten verfügen beispielsweise interne Mitarbeiter über Konten zum Bearbeiten von Dokumenten, während ausgelagerte Mitarbeiter keine internen Konten haben, aber die Dokumente sehen müssen. Daher ist die Einstellung der Benutzerüberprüfung auf Nginx-Ebene die beste und einfachste Option In den meisten Fällen werden Arbeitgeber kein Konto mit grundlegenden Zugriffsrechten für ausgelagerte Mitarbeiter eröffnen.
Voraussetzungen für die Benutzerauthentifizierung auf Nginx-Ebene: Es ist ein entsprechendes Programm zur Passworterstellung erforderlich, z. B. Apache2-Utils (Debian, Ubuntu) oder httpd-tools (Rhel/Centos/Oracle Linux).
Erstellen Sie eine Kontopasswortdatei
Verwenden Sie den Befehl sudo htpasswd -c /etc/apache2/.htpasswd user1
, um das erste Konto zu erstellen, und drücken Sie dann die Eingabetaste, um das einzugeben Passwort, derselbe Befehl, es gibt keinen -c-Parameter zum Erstellen eines zweiten Benutzers und Passworts, der -c-Parameter dient zum Erstellen einer Datei und es besteht keine Notwendigkeit, die Datei im zweiten und den folgenden Befehlen erneut zu erstellen. sudo htpasswd -c /etc/apache2/.htpasswd user1
创建第一个账户,然后按下 enter 键输入密码,同样的命令,没有 -c 参数创建第二个用户及密码, -c 参数为创建文件,在第二次及以后的命令中不需要再次创建文件。
确认一下文件及账号信息生成成功,使用命令 cat /etc/apache2/.htpasswd 查看文件内容,应该为账号及加密后的密码,如:user1:$apr1$/woc1jnp$kah0ssvn5qesmjttn0e9q0
user1: $apr1$/woc1jnp$kah0ssvn5qesmjttn0e9q0
usw. location /api { auth_basic "administrator's area"; auth_basic_user_file /etc/apache2/.htpasswd; }Wenn ein Block außerdem nicht das gesamte Authentifizierungssystem erben möchte, können Sie auth_basic im Block deaktivieren, was bedeutet, dass die Benutzerauthentifizierung deaktiviert ist. Beispielkonfiguration:
server { ... auth_basic "administrator's area"; auth_basic_user_file conf/htpasswd; location /public/ { auth_basic off; } }
location /api { #... deny 192.168.1.2; allow 192.168.1.1/24; allow 127.0.0.1; deny all; }2. Für andere Netzwerke als die Adresse 192.168.1.2 wird nur der Zugriff auf 192.168.1.1/24 gewährt. Hinweis: Allow- und Deny-Anweisungen werden in der definierten Reihenfolge angewendet. Kombinieren Sie Einschränkungen mit der Erfüllen-Anweisung über IP- und HTTP-Authentifizierung. Wenn die Direktive auf all gesetzt ist, wird der Zugriff gewährt, wenn der Client diese beiden Bedingungen erfüllt. Wenn die Anweisung auf „any“ gesetzt ist, wird der Zugriff gewährt, wenn der Client mindestens eine Bedingung erfüllt. Beispiel: Konfiguration:
location /api { #... satisfy all; deny 192.168.1.2; allow 192.168.1.1/24; allow 127.0.0.1; deny all; auth_basic "administrator's area"; auth_basic_user_file conf/htpasswd; }Das Obige kann in einem vollständigen Beispiel organisiert werden:
http { server { listen 192.168.1.23:8080; root /usr/share/nginx/html; location /api { api; satisfy all; deny 192.168.1.2; allow 192.168.1.1/24; allow 127.0.0.1; deny all; auth_basic "administrator's area"; auth_basic_user_file /etc/apache2/.htpasswd; } } }Der endgültige Effekt ist wie in der Abbildung dargestellt Figur:
Das obige ist der detaillierte Inhalt vonSo konfigurieren Sie die Nginx-Benutzerauthentifizierungsseite. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!