Zugriffsschutz mit .htaccess in nginx
Ich habe vor einer Weile mal einen alten Webserver von apache2 nach nginx migriert, welcher eine Unterseite hatte, die mit .htaccess gesperrt war. Mir ist bekannt das nginx aus Performancegründen keine .htaccess-Dateien unterstützt, dennoch muss es ja möglich sein den Zugriff auf eine Unterseite zu limitieren. Nach ein paar Minuten suchen in der nginx Dokumentation, findet man das ngx_http_auth_basic_module, welches genau das kann. Der location-Block für die Unterseite foobar würde dann wie folgt aussehen:
location /foobar/ {
auth_basic "Closed Access";
auth_basic_user_file /etc/nginx/.htpasswd;
}
In der angegebenen .htpasswd steht der Username und das zugehörige Passwort (oder mehrere).
#EDIT
Hinweise von Arne, etwas von mir gekürzt: Den Usernamen und Passwort eintragen:
echo "USER:$(openssl passwd -apr1)" >> /etc/nginx/.htpasswd
Es wird zweimal nach dem Passwort gefragt.
Hinweise von Anonymous:
Von den Online-Generatoren sollte man tunlichst die Finger lassen!
Zumindest in der Vergangenheit gab es einige dieser Generatoren, die nicht nur dem Benutzer ihre Passwörter verschlüsselt haben, sondern auch zeitgleich damit diverse Rainbow-Tables befüllt haben.
Vielen Dank für den Hinweis an euch beide!