about summary refs log tree commit diff
path: root/tests/nginx.conf
blob: 283362add0bffe67e73f11f9e473b21f1121bb58 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
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;