server { listen 80; server_name git.domaine.com; root /var/www/html/cgit; try_files $uri @cgit; # Si un client utilise les commandes git alors : location ~ ^.*/(HEAD|info/refs|objects/info/.*|git-(upload|receive)-pack)$ { satisfy any; # On autorise les accès au dépôts aux utilisateur définit dans le fichier htpasswd : auth_basic "Restricted"; auth_basic_user_file /etc/nginx/htpasswd; # On définit les paramètres pour interagir avec les dépôts : fastcgi_pass unix:/run/fcgiwrap.socket; fastcgi_param SCRIPT_FILENAME /usr/lib/git-core/git-http-backend; fastcgi_param PATH_INFO $uri; fastcgi_param GIT_PROJECT_ROOT /var/www/html/cgit/; fastcgi_param GIT_HTTP_EXPORT_ALL ""; fastcgi_param REMOTE_USER $remote_user; include fastcgi_params; } # Liste de paramètres pour interagir avec le script cgi : location @cgit { include fastcgi_params; index cgit.cgi; # fastcgi_param SCRIPT_FILENAME $document_root/cgit.cgi; fastcgi_param SCRIPT_FILENAME /usr/lib/cgit/cgit.cgi; fastcgi_param PATH_INFO $uri; fastcgi_param QUERY_STRING $args; fastcgi_param HTTP_HOST $server_name; fastcgi_pass unix:/run/fcgiwrap.socket; } # Enregistrement des accès : access_log /var/log/nginx/access.git.domaine.com.log; error_log /var/log/nginx/error.domaine.com.log; }