error_log stderr; events { #use kqueue; worker_connections 512; } http { # Load mime types and configure maximum size of the types hash tables. include ../test_utils/nginx/conf/fastcgi.conf; include ../test_utils/nginx/conf/uwsgi_params; default_type application/octet-stream; # optimisation sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; proxy_redirect off; proxy_connect_timeout 60s; proxy_send_timeout 60s; proxy_read_timeout 60s; proxy_http_version 1.1; # don't let clients close the keep-alive connection to upstream. See the nginx blog for details: # https://www.nginx.com/blog/avoiding-top-10-nginx-configuration-mistakes/#no-keepalives proxy_set_header "Connection" ""; server { listen 127.0.0.1:9001 ; server_name localhost ; http2 on; root ../; location / { #fastcgi_param CGIT_CONFIG "/nix/store/jn11qwy9fccfv28fj44i68qj5qwp4m0y-cgitrc"; fastcgi_param CONTENT_LENGTH "$content_length"; fastcgi_param CONTENT_TYPE "$content_type"; fastcgi_param DOCUMENT_ROOT "$document_root"; fastcgi_param DOCUMENT_URI "$document_uri"; fastcgi_param GATEWAY_INTERFACE "CGI/1.1"; fastcgi_param HTTPS "$https if_not_empty"; fastcgi_param HTTP_HOST "$server_name"; fastcgi_param QUERY_STRING "$args"; fastcgi_param REDIRECT_STATUS "200"; fastcgi_param REMOTE_ADDR "$remote_addr"; fastcgi_param REMOTE_PORT "$remote_port"; fastcgi_param REQUEST_METHOD "$request_method"; fastcgi_param REQUEST_SCHEME "$scheme"; fastcgi_param REQUEST_URI "$request_uri"; fastcgi_param SCRIPT_FILENAME "./cgit"; fastcgi_param SCRIPT_NAME "$fastcgi_script_name"; fastcgi_param SERVER_ADDR "$server_addr"; fastcgi_param SERVER_NAME "$server_name"; fastcgi_param SERVER_PORT "$server_port"; fastcgi_param SERVER_PROTOCOL "$server_protocol"; fastcgi_param SERVER_SOFTWARE "nginx/$nginx_version"; fastcgi_param PATH_INFO $uri; fastcgi_pass unix:test_utils/fcgiwrap.sock; } #location = /cgit.css { # alias ./cgit.css; #} #location = /cgit.png { # alias ./cgit.png; #} #location = /favicon.ico { # alias ./favicon.ico; #} #location = /robots.txt { # alias ./robots.txt; #} location ~ /.+/(info/refs|git-upload-pack) { fastcgi_param CONTENT_LENGTH "$content_length"; fastcgi_param CONTENT_TYPE "$content_type"; fastcgi_param DOCUMENT_ROOT "$document_root"; fastcgi_param DOCUMENT_URI "$document_uri"; fastcgi_param GATEWAY_INTERFACE "CGI/1.1"; fastcgi_param GIT_HTTP_EXPORT_ALL "1"; fastcgi_param GIT_PROJECT_ROOT "/data/git"; fastcgi_param HOME "/data/git"; fastcgi_param HTTPS "$https if_not_empty"; fastcgi_param QUERY_STRING "$query_string"; fastcgi_param REDIRECT_STATUS "200"; fastcgi_param REMOTE_ADDR "$remote_addr"; fastcgi_param REMOTE_PORT "$remote_port"; fastcgi_param REQUEST_METHOD "$request_method"; fastcgi_param REQUEST_SCHEME "$scheme"; fastcgi_param REQUEST_URI "$request_uri"; fastcgi_param SCRIPT_FILENAME "./test_utils/git/libexec/git-core/git-http-backend"; fastcgi_param SCRIPT_NAME "$fastcgi_script_name"; fastcgi_param SERVER_ADDR "$server_addr"; fastcgi_param SERVER_NAME "$server_name"; fastcgi_param SERVER_PORT "$server_port"; fastcgi_param SERVER_PROTOCOL "$server_protocol"; fastcgi_param SERVER_SOFTWARE "nginx/$nginx_version"; fastcgi_param PATH_INFO $uri; fastcgi_pass unix:/run/fcgiwrap-cgit-main.sock; } autoindex on; more_set_headers 'Access-Control-Allow-Origin: *'; more_set_headers 'Access-Control-Allow-Methods: GET, POST, OPTIONS'; more_set_headers 'Access-Control-Allow-Headers: DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range'; more_set_headers 'Access-Control-Expose-Headers: Content-Length,Content-Range'; more_set_headers 'Access-Control-Allow-Credentials: true'; } disable_symlinks off; log_format combined_vhosts '$remote_addr - $remote_user [$time_local] {host="$host",server_name="$server_name",upstream=$upstream_addr,t=$request_time[u_conn=$upstream_connect_time,u_hdr=$upstream_header_time,u_resp=$upstream_response_time]} "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"'; access_log nginx-access.log combined_vhosts; } pid nginx.pid; error_log nginx-error.log; daemon off; master_process off;