-
Notifications
You must be signed in to change notification settings - Fork 1
/
nginx.conf
159 lines (128 loc) · 3.45 KB
/
nginx.conf
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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
#user nginx;
user www-data;
pid /run/nginx.pid;
worker_processes 2;
worker_rlimit_nofile 12288;
events {
worker_connections 4096;
}
http {
access_log off;
error_log /var/log/nginx/error.log warn;
include /etc/nginx/mime.types;
default_type application/octet-stream;
sendfile on;
open_file_cache max=1024 inactive=60s;
tcp_nopush on;
#gzip on;
#gzip_min_length 1100;
#gzip_buffers 4 8k;
#gzip_types application/atom+xml text/plain text/css text/javascript application/json application/javascript;
#gzip_vary on;
#gzip_disable "MSIE [1-6]\.";
gzip_static on;
keepalive_timeout 65;
proxy_buffers 100 32k;
proxy_buffer_size 8k;
client_body_buffer_size 2M;
client_max_body_size 20M;
ssl_protocols TLSv1.2;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
upstream app {
#server isu1:8888 fail_timeout=0;
server isu2:8888 fail_timeout=0;
server isu3:8888 fail_timeout=0;
keepalive 16;
}
upstream isu1 {
server isu1:8888 fail_timeout=0;
keepalive 16;
}
upstream isu2 {
server isu2:8888 fail_timeout=0;
keepalive 16;
}
upstream isu3 {
server isu3:8888 fail_timeout=0;
keepalive 16;
}
upstream localapp {
server unix:/run/isucari/puma.sock fail_timeout=0;
keepalive 128;
}
server {
listen 0.0.0.0:8888 default_server;
access_log off;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_http_version 1.1;
location / {
proxy_pass http://localapp;
}
location /upload {
root /home/isucon/public.local;
}
location /_upload/1 {
rewrite ^/_(.+)$ /$1 break;
proxy_pass http://isu1;
}
location /_upload/2 {
rewrite ^/_(.+)$ /$1 break;
proxy_pass http://isu2;
}
location /_upload/3 {
rewrite ^/_(.+)$ /$1 break;
proxy_pass http://isu3;
}
}
server {
listen 0.0.0.0:80 default_server;
access_log off;
location /upload {
root /home/isucon/public.local;
}
}
server {
listen 0.0.0.0:443 http2 ssl default_server;
server_name isucon9.catatsuy.org;
ssl_certificate /etc/nginx/ssl/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/privkey.pem;
access_log off;
proxy_set_header Connection "";
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_http_version 1.1;
location / {
root /home/isucon/git/webapp/public;
try_files $uri $uri/index.html @app;
}
location = /sell {
root /home/isucon/git/webapp/public;
try_files $uri $uri/index.html @localapp;
}
location = /ship {
root /home/isucon/git/webapp/public;
try_files $uri $uri/index.html @localapp;
}
location /upload {
root /home/isucon/git/webapp/public;
}
location /upload/1/ {
proxy_pass http://isu1;
}
location /upload/2/ {
proxy_pass http://isu2;
}
location /upload/3/ {
proxy_pass http://isu3;
}
location @localapp {
proxy_pass http://localapp;
}
location @app {
proxy_pass http://app;
}
}
}