NGINX - Passwortschutz für Ordner / Verzeichnis

Manchmal ist es sinnvoll einige seiner Internet Seiten mit einem Passwort zu schützen. Meistens wenn Webseiten noch nicht fertig sind oder bestimmte Ordner einfach nicht jedem Zugänglich sein sollen.

Der NGINX Webserver bietet dazu eine einfache Möglichkeit dieses Ziel zu erreichen. Mit dem meist Standardmäßig installierten NGINX Modul "ngx_http_auth_basic_module" kann man einen einfachen Passwortschutz realisieren. Zur Validierung wir der Benutzername und das Passwort verwendet (HTTP Basic Authentication).

Der Benutzer und das Passwort werden dazu in eine separate Datei gespeichert. Um diese Datei einfach zu erstellen benötigt man das Paket "apache2-utils".


  sudo apt-get install apache2-utils

Mit dem Befehl htpasswd erzeugt man nun eine Datei für einen bestimmten Benutzer (in dem Fall "admin"). Außerdem speichern wir die Datei direkt in das NGINX Verzeichnis.


  sudo htpasswd -c /etc/nginx/admin.htpasswd admin

Mann muss das Passwort 2 mal eingeben.

Anschließend muss man noch die NGINX Konfiguration anpassen. Hier ein kleines Beispiel.
server {
    server_name mypage.tld www.mypage.tld;
    
    listen 80 default_server;
    
    root /var/www;
    
    location /admin {
        auth_basic "Zugriff nicht erlaubt";
        auth_basic_user_file /etc/nginx/admin.htpasswd;
    }
}

Am Ende muss man noch den Webserver neustarten und schon sollte es funktionieren.

  sudo /etc/init.d/nginx restart

Fertig!
Euer Verzeichnis sollte jetzt geschützt sein. z.B. www.mypage.tld/admin

Quelle: Link

Kommentar veröffentlichen