server { listen 80; listen [::]:80; server_name _; location ~ ^/git_write/ { rewrite ^/git_write/(.*) /\$1 break; auth_basic "Git"; auth_basic_user_file $GIT_HOME.htpasswd; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $GIT_HTTP_BACKEND; fastcgi_param GIT_PROJECT_ROOT $GIT_HOME; fastcgi_param PATH_INFO \$uri; fastcgi_pass unix:/var/run/fcgiwrap.socket; } location ~ ^/git_read/ { rewrite ^/git_read/(.*) /\$1 break; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $GIT_HTTP_BACKEND; fastcgi_param GIT_PROJECT_ROOT $GIT_HOME; fastcgi_param PATH_INFO \$uri; fastcgi_pass unix:/var/run/fcgiwrap.socket; } location ~ \\.git { if (\$arg_service = git-receive-pack) { rewrite /(.*) /git_write/\$1 last; } if (\$uri ~ ^/.*/git-receive-pack\$) { rewrite /(.*) /git_write/\$1 last; } if (\$arg_service = git-upload-pack) { rewrite /(.*) /git_read/\$1 last; } if (\$uri ~ ^/.*/git-upload-pack\$) { rewrite /(.*) /git_read/\$1 last; } } location ^~ /git/ { rewrite ^/git/(.*) /\$1 break; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $CGIT_CGI; fastcgi_param PATH_INFO \$uri; fastcgi_param QUERY_STRING \$args; fastcgi_pass unix:/var/run/fcgiwrap.socket; } location ~* \\.(txt|asc|htm|css|svg|jpg|png|gif|ico|woff|woff2|js|wasm|mp3)\$ { rewrite ^/(.*) /static/plain/\$1 break; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $CGIT_CGI; fastcgi_param PATH_INFO \$uri; fastcgi_param QUERY_STRING \$args; fastcgi_pass unix:/var/run/fcgiwrap.socket; } location / { include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME /srv/main.cgi; fastcgi_pass unix:/var/run/fcgiwrap.socket; } }