Nginx sert du contenu statique derrière la page authentifiée

J’ai créé une bibliothèque d’appels de répertoire, qui nécessite une authentification pour y accéder. Une fois l’authentification terminée, je souhaiterais répertorier tous les fichiers de la bibliothèque pour l’utilisateur. J’ai essayé l’auto-index en vain, et la plupart du matériel que je trouve ne couvre pas si oui ou non l’authentification affectera quelque chose.

J’apprécierais toute aide, merci.

server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; root /usr/share/nginx/html; index index.html index.htm index.php; # Make site accessible from http://localhost/ server_name localhost; location / { # First attempt to serve request as file, then as # directory, then fall back to displaying a 404. try_files $uri $uri/ =404; # Uncomment to enable naxsi on this location include # /etc/nginx/naxsi.rules } location /website { } location /library { auth_basic "Ressortingcted"; auth_basic_user_file /etc/nginx/.htpasswd; } 

Votre location /library bloc de location /library imposera l’exigence d’une authentification de base et servira les mêmes fichiers statiques dans /usr/share/nginx/html/library à tous les utilisateurs pouvant s’authentifier correctement. En bref, tous les utilisateurs qui ont réussi à s’authentifier verront les mêmes fichiers dans votre configuration actuelle.

Pour servir différents fichiers statiques à différents utilisateurs, considérez que l’authentification de base définira la variable $remote_user (voir docs ) que vous pouvez utiliser pour rendre votre configuration dynamic.

Par exemple, si vous vouliez servir un dossier différent pour chaque ID utilisateur (à la même URL /library ), vous utiliseriez un bloc tel que:

 location /library { auth_basic "Ressortingcted"; auth_basic_user_file /etc/nginx/.htpasswd; alias /usr/share/nginx/html/$remote_user/; } 

en supposant que vos dossiers sont nommés avec l’ID de vos utilisateurs et situés sur ce chemin.

Si un utilisateur échoue à l’authentification de base, il error_page une erreur 403 Forbidden, que vous pourrez gérer en utilisant la directive error_page pour afficher quelque chose de plus utile qu’une simple erreur de base. De même, si un utilisateur peut s’authentifier avec succès et qu’un dossier correspondant n’existe pas, il verra un 404, que vous pourrez gérer à nouveau avec une directive error_page .