@@ -7,6 +7,36 @@ upstream domjudge {
7
7
server unix:/var/run/php-fpm-domjudge.sock; # if using with etc/domjudge-fpm.conf
8
8
}
9
9
10
+ {% if DOMSERVER_LOADBALANCING %}
11
+ upstream domjudge-loadbalanced {
12
+ least_conn;
13
+ {% for host in groups ['domserver' ] %}
14
+ server {{ hostvars[host] .ansible_host }}:81;
15
+ {% endfor %}
16
+ }
17
+
18
+ server {
19
+ listen 81;
20
+ listen [::]:81;
21
+ server_name _default_;
22
+
23
+ add_header Strict-Transport-Security max-age=31556952;
24
+ include /etc/nginx/snippets/domjudge-inner;
25
+
26
+ set_real_ip_from {{ SERVER_IP_PREFIX }}.0/24;
27
+ real_ip_header X-Forwarded-For;
28
+ real_ip_recursive on;
29
+ }
30
+
31
+ map $realip_remote_addr $access_allowed {
32
+ default false;
33
+ {% for host in groups ['domserver' ] %}
34
+ {{ hostvars[host] .ansible_host }} true;
35
+ {% endfor %}
36
+ }
37
+
38
+ {% endif %}
39
+
10
40
server {
11
41
listen 80;
12
42
listen [::]:80;
@@ -25,5 +55,20 @@ server {
25
55
26
56
add_header Strict-Transport-Security max-age=31556952;
27
57
58
+ {% if DOMSERVER_LOADBALANCING %}
59
+ location / {
60
+ proxy_pass http://domjudge-loadbalanced;
61
+ proxy_http_version 1.1;
62
+ proxy_set_header Upgrade $http_upgrade;
63
+ proxy_set_header Connection "upgrade";
64
+ proxy_set_header X-Forwarded-Proto $scheme;
65
+ proxy_set_header Host $http_host;
66
+ proxy_set_header X-Real-IP $remote_addr;
67
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
68
+ proxy_request_buffering off;
69
+ proxy_buffering off;
70
+ }
71
+ {% else %}
28
72
include /etc/nginx/snippets/domjudge-inner;
73
+ {% endif %}
29
74
}
0 commit comments