server { listen 80; server_name source.copyninja.info; # redirect to https return 301 https://$server_name$request_uri; } server { listen 443 ssl; server_name source.copyninja.info; root /usr/share/cgit; ssl on; ssl_certificate /etc/ssl/certs/source.copyninja.info.cert.pem; ssl_certificate_key /etc/ssl/private/source.copyninja.info.privkey.pem; include /etc/nginx/conf.d/ssl.conf; location ~* \.(?:ico|css|js|gif|jpe?g|png)$ { expires 30d; add_header Prgma public; add_header Cache-Control: "public"; } # static repo files for cloning over https location ~ ^.*\.git/objects/([0-9a-f]+/[0-9a-f]+|pack/pack-[0-9a-f]+.(pack|idx))$ { root /home/git/projects; } # requests for git-http-backend location ~ ^.*\.git/(HEAD|info/refs|objects/info/.*|git-(upload|receive)-pack)$ { root /home/git/projects; include uwsgi_params; uwsgi_modifier1 9; uwsgi_param GIT_PROJECT_ROOT /home/git/projects; uwsgi_param PATH_INFO $uri; uwsgi_pass unix:/run/uwsgi/app/git-http/socket; } # send anything else cgit try_files $uri @cgit; location @cgit { include uwsgi_params; uwsgi_modifier1 9; uwsgi_param PATH_INFO $uri; uwsgi_param QUERY_STRING $args; uwsgi_pass unix:/run/uwsgi/app/cgit/socket; } access_log /var/log/nginx/source.access.log; error_log /var/log/nginx/source.error.log info; }