Sur un serveur Arch, avec Nginx et Cgit. Je veux restreindre l'accès par authentification basique, excepté pour le répertoire
/pub/
. Tout fonctionne, sauf que je n'arrive pas à mettre l'exception sur le répertoire. Comme indiqué sur la documentation du module, je voudrais mettre le contexte server
en auth_basic
, et ainsi mettre un auth_basic off
dans le contexte de location
correspondant au répertoire /pub/
.En m'aidant de ce lien, j'en suis arrivé à ça :
Code : Tout sélectionner
server {
listen 80;
server_name git.nicosphere.net;
index cgit.cgi;
gzip off;
auth_basic "Restricted";
auth_basic_user_file /srv/gitosis/.htpasswd;
location / {
root /usr/share/webapps/cgit/;
}
location ^~ /pub/ {
auth_basic off;
}
if (!-f $request_filename) {
rewrite ^/([^?/]+/[^?]*)?(?:\?(.*))?$ /cgit.cgi?url=$1&$2 last;
}
location ~ \.cgi$ {
gzip off;
include fastcgi_params;
fastcgi_pass 127.0.0.1:9001;
fastcgi_index cgit.cgi;
fastcgi_param SCRIPT_FILENAME /usr/share/webapps/cgit/cgit.cgi;
fastcgi_param DOCUMENT_ROOT /usr/share/webapps/cgit/;
}
}
L'aspect pédagogique prime sur la solution, je suis preneur de tout lien explicatif.
Merci.
EDIT: j'ai également demandé sur stackoverflow au cas où.