diff options
Diffstat (limited to 'public/fs/etc/nginx')
-rw-r--r-- | public/fs/etc/nginx/vhosts.d/git.foss21.org.conf | 29 |
1 files changed, 26 insertions, 3 deletions
diff --git a/public/fs/etc/nginx/vhosts.d/git.foss21.org.conf b/public/fs/etc/nginx/vhosts.d/git.foss21.org.conf index 3b0cf57..af9490c 100644 --- a/public/fs/etc/nginx/vhosts.d/git.foss21.org.conf +++ b/public/fs/etc/nginx/vhosts.d/git.foss21.org.conf @@ -9,24 +9,47 @@ server { server_name git.foss21.org; root /srv/www/htdocs; + # legacy (bookmarked) /cgit.git addresses location /cgit.cgi { rewrite ^/cgit.cgi(/.*)$ $1 last; } + # git-http-backend: initial clone GET request + location ~ ^(/namespace)?/(.+?)/info(/.*)?$ { + try_files $uri @git_http_backend; + } + + # git-http-backend: clone POST request + location ~ ^(/namespace)?/(.+?)/git-upload-pack { + try_files $uri @git_http_backend; + } + + # otherwise, cgit location / { try_files $uri @cgit; } + location @git_http_backend { + include uwsgi_params; + uwsgi_modifier1 9; + uwsgi_pass unix:/run/uwsgi/git.socket; + + uwsgi_param HTTP_HOST $server_name; + uwsgi_param GIT_PROJECT_ROOT /srv/git; + uwsgi_param PATH_INFO $uri; + uwsgi_param GIT_HTTP_EXPORT_ALL ""; + } + location @cgit { include uwsgi_params; uwsgi_modifier1 9; uwsgi_pass unix:/run/uwsgi/cgit.socket; - uwsgi_param CGIT_CONFIG "/etc/cgit.d/cgitrc.foss21.org"; - uwsgi_param PATH_INFO $uri; - uwsgi_param QUERY_STRING $args; uwsgi_param HTTP_HOST $server_name; + uwsgi_param CGIT_CONFIG /etc/cgit.d/cgitrc.foss21.org; uwsgi_param SCRIPT_FILENAME $document_root/cgit.cgi; + uwsgi_param PATH_INFO $uri; + uwsgi_param QUERY_STRING $args; } ssl_certificate /etc/nginx/certs.d/culturestrings.org/ssl/fullchain.pem; |