|
| 1 | +# 1. สร้างกลุ่ม Upstream (Load Balancer) |
| 2 | +upstream cms_cluster { |
| 3 | + # เลือกวิธีการกระจายงาน (least_conn = ส่งให้คนที่งานน้อยสุด) |
| 4 | + least_conn; |
| 5 | + |
| 6 | + server devcms:9501; |
| 7 | + server devcms:9502; |
| 8 | + server devcms:9503; |
| 9 | + server devcms:9504; |
| 10 | +} |
| 11 | + |
1 | 12 | server { |
2 | 13 | listen 80 default_server; |
3 | | - listen [::]:80 default_server; |
4 | | - |
5 | | - location /static { |
6 | | - alias /var/www/static; |
7 | | - expires 30d; |
8 | | - } |
| 14 | + # listen [::]:80 default_server; # ถ้าไม่ได้ใช้ IPv6 ก็ comment ไว้ก่อนก็ได้ |
9 | 15 |
|
| 16 | + # 2. ตั้งค่าการส่งต่อ (Proxy Pass) |
10 | 17 | location / { |
11 | | - root /var/www/html; |
12 | | - index index.html; |
13 | | - } |
14 | | - |
15 | | - location /m1-t1-work/ { |
16 | | - proxy_pass http://devcms:9501/; |
17 | | - proxy_set_header Host $host; |
18 | | - proxy_set_header X-Real-IP $remote_addr; |
19 | | - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |
20 | | - } |
21 | | - |
22 | | - location /m1-t1-mid/ { |
23 | | - proxy_pass http://devcms:9502/; |
24 | | - proxy_set_header Host $host; |
25 | | - proxy_set_header X-Real-IP $remote_addr; |
26 | | - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |
27 | | - } |
28 | | - location /m1-t1-final/ { |
29 | | - proxy_pass http://devcms:9503/; |
30 | | - proxy_set_header Host $host; |
31 | | - proxy_set_header X-Real-IP $remote_addr; |
32 | | - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |
33 | | - } |
34 | | - |
35 | | - location /m1-t2-work/ { |
36 | | - proxy_pass http://devcms:9504/; |
37 | | - proxy_set_header Host $host; |
38 | | - proxy_set_header X-Real-IP $remote_addr; |
39 | | - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |
40 | | - } |
41 | | - |
42 | | - location /m1-t2-mid/ { |
43 | | - proxy_pass http://devcms:9505/; |
44 | | - proxy_set_header Host $host; |
45 | | - proxy_set_header X-Real-IP $remote_addr; |
46 | | - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |
47 | | - } |
48 | | - location /m1-t2-final/ { |
49 | | - proxy_pass http://devcms:9506/; |
50 | | - proxy_set_header Host $host; |
51 | | - proxy_set_header X-Real-IP $remote_addr; |
52 | | - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |
53 | | - } |
54 | | - |
55 | | - location /m2-t1-work/ { |
56 | | - proxy_pass http://devcms:9507/; |
57 | | - proxy_set_header Host $host; |
58 | | - proxy_set_header X-Real-IP $remote_addr; |
59 | | - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |
60 | | - } |
61 | | - |
62 | | - location /m2-t1-mid/ { |
63 | | - proxy_pass http://devcms:9508/; |
64 | | - proxy_set_header Host $host; |
65 | | - proxy_set_header X-Real-IP $remote_addr; |
66 | | - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |
67 | | - } |
68 | | - location /m2-t1-final/ { |
69 | | - proxy_pass http://devcms:9509/; |
70 | | - proxy_set_header Host $host; |
71 | | - proxy_set_header X-Real-IP $remote_addr; |
72 | | - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |
73 | | - } |
74 | | - |
75 | | - location /teacher-only/ { |
76 | | - proxy_pass http://devcms:9510/; |
77 | | - proxy_set_header Host $host; |
78 | | - proxy_set_header X-Real-IP $remote_addr; |
79 | | - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |
80 | | - } |
81 | | - |
82 | | - location /cws11/ { |
83 | | - proxy_pass http://devcms:9511/; |
84 | | - proxy_set_header Host $host; |
85 | | - proxy_set_header X-Real-IP $remote_addr; |
86 | | - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |
87 | | - } |
88 | | - location /cws12/ { |
89 | | - proxy_pass http://devcms:9512/; |
90 | | - proxy_set_header Host $host; |
91 | | - proxy_set_header X-Real-IP $remote_addr; |
92 | | - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |
93 | | - } |
94 | | - |
95 | | - location /cws13/ { |
96 | | - proxy_pass http://devcms:9513/; |
97 | | - proxy_set_header Host $host; |
98 | | - proxy_set_header X-Real-IP $remote_addr; |
99 | | - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |
100 | | - } |
101 | | - location /cws14/ { |
102 | | - proxy_pass http://devcms:9514/; |
103 | | - proxy_set_header Host $host; |
104 | | - proxy_set_header X-Real-IP $remote_addr; |
105 | | - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |
106 | | - } |
107 | | - location /cws15/ { |
108 | | - proxy_pass http://devcms:9515/; |
109 | | - proxy_set_header Host $host; |
110 | | - proxy_set_header X-Real-IP $remote_addr; |
111 | | - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |
112 | | - } |
113 | | - location /cws16/ { |
114 | | - proxy_pass http://devcms:9516/; |
| 18 | + proxy_pass http://cms_cluster; |
| 19 | + |
| 20 | + # ส่ง Header ที่จำเป็นไปให้ CMS รู้ตัวตนคนเข้า |
115 | 21 | proxy_set_header Host $host; |
116 | 22 | proxy_set_header X-Real-IP $remote_addr; |
117 | 23 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |
118 | | - } |
119 | | - location /cws17/ { |
120 | | - proxy_pass http://devcms:9517/; |
121 | | - proxy_set_header Host $host; |
122 | | - proxy_set_header X-Real-IP $remote_addr; |
123 | | - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |
124 | | - } |
125 | | - location /cws18/ { |
126 | | - proxy_pass http://devcms:9518/; |
127 | | - proxy_set_header Host $host; |
128 | | - proxy_set_header X-Real-IP $remote_addr; |
129 | | - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |
130 | | - } |
131 | | - location /cws19/ { |
132 | | - proxy_pass http://devcms:9519/; |
133 | | - proxy_set_header Host $host; |
134 | | - proxy_set_header X-Real-IP $remote_addr; |
135 | | - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |
136 | | - } |
137 | | - location /cws20/ { |
138 | | - proxy_pass http://devcms:9520/; |
139 | | - proxy_set_header Host $host; |
140 | | - proxy_set_header X-Real-IP $remote_addr; |
141 | | - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |
142 | | - } |
143 | | - |
144 | | - |
| 24 | + proxy_set_header X-Forwarded-Proto $scheme; |
145 | 25 |
|
146 | | - # Admin |
147 | | - location /admin/ { |
148 | | - proxy_pass http://devcms:8889/; |
149 | | - proxy_set_header Host $host; |
| 26 | + # รองรับ Web Socket (สำหรับ Live Scoreboard) |
| 27 | + proxy_http_version 1.1; |
| 28 | + proxy_set_header Upgrade $http_upgrade; |
| 29 | + proxy_set_header Connection "upgrade"; |
150 | 30 | } |
151 | 31 |
|
152 | | - # Ranking |
153 | | - location /ranking/ { |
154 | | - proxy_pass http://devcms:8890/; |
155 | | - proxy_set_header Host $host; |
| 32 | + # ส่วน Static file ยังเหมือนเดิม |
| 33 | + location /static { |
| 34 | + alias /var/www/static; |
| 35 | + expires 30d; |
156 | 36 | } |
157 | 37 | } |
0 commit comments