I recently upgraded some VMs from Debian Wheezy to Jessie (actually I did clean reinstalls), which finally made a package available for cgit.

So I took the opportunity to switch the hosted Git web frontends from some crappy (possibly insecure) PHP stuff to cgit, integrated into my Nginx setup via uWSGI.

If you want your cgit interface to reside under a "subfolder", i.e. one or more levels below your web root, then you run into problems as the PATH_INFO environment extracted from the request URL contains the subfolder component(s). This confuses cgit which is not designed to be used in subfolders.

Crawling the web you find lots of references to Nginx config snippets like this

uwsgi_param SCRIPT_NAME /cgit;
uwsgi_modifier1 30;

but unfortunately that modifier seems to have been dropped (it has been deprecated for long time).

In order to work around this you can make use of fastcgi_split_path_info:

location /cgit {
    gzip off;

    include uwsgi_params;
    uwsgi_pass unix:/var/run/uwsgi/app/cgit/socket;
    uwsgi_modifier1 9;

    fastcgi_split_path_info ^(/cgit/?)(.+)$;
    uwsgi_param PATH_INFO $fastcgi_path_info;