Skip to content

Commit 9e303bd

Browse files
committed
change to load balancer
1 parent 33d96cf commit 9e303bd

46 files changed

Lines changed: 4456 additions & 219 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

config-data/cms-devdb.toml

Lines changed: 9 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -43,23 +43,7 @@ EvaluationService = [
4343
["localhost", 25000],
4444
["localhost", 25001],
4545
["localhost", 25002],
46-
["localhost", 25003],
47-
["localhost", 25004],
48-
["localhost", 25005],
49-
["localhost", 25006],
50-
["localhost", 25007],
51-
["localhost", 25008],
52-
["localhost", 25009],
53-
["localhost", 25010],
54-
["localhost", 25011],
55-
["localhost", 25012],
56-
["localhost", 25013],
57-
["localhost", 25014],
58-
["localhost", 25015],
59-
["localhost", 25016],
60-
["localhost", 25017],
61-
["localhost", 25018],
62-
["localhost", 25019]
46+
["localhost", 25003]
6347
]
6448
Worker = [
6549
["localhost", 26000],
@@ -88,46 +72,14 @@ ContestWebServer = [
8872
["localhost", 21000],
8973
["localhost", 21001],
9074
["localhost", 21002],
91-
["localhost", 21003],
92-
["localhost", 21004],
93-
["localhost", 21005],
94-
["localhost", 21006],
95-
["localhost", 21007],
96-
["localhost", 21008],
97-
["localhost", 21009],
98-
["localhost", 21010],
99-
["localhost", 21011],
100-
["localhost", 21012],
101-
["localhost", 21013],
102-
["localhost", 21014],
103-
["localhost", 21015],
104-
["localhost", 21016],
105-
["localhost", 21017],
106-
["localhost", 21018],
107-
["localhost", 21019]
75+
["localhost", 21003]
10876
]
10977
AdminWebServer = [["localhost", 21100]]
11078
ProxyService = [
11179
["localhost", 28600],
11280
["localhost", 28601],
11381
["localhost", 28602],
114-
["localhost", 28603],
115-
["localhost", 28604],
116-
["localhost", 28605],
117-
["localhost", 28606],
118-
["localhost", 28607],
119-
["localhost", 28608],
120-
["localhost", 28609],
121-
["localhost", 28610],
122-
["localhost", 28611],
123-
["localhost", 28612],
124-
["localhost", 28613],
125-
["localhost", 28614],
126-
["localhost", 28615],
127-
["localhost", 28616],
128-
["localhost", 28617],
129-
["localhost", 28618],
130-
["localhost", 28619]
82+
["localhost", 28603]
13183
]
13284
PrintingService = [["localhost", 25123]]
13385
PrometheusExporter = []
@@ -189,29 +141,12 @@ tornado_debug = false
189141
# separate reverse proxy to access it from the web. Set to empty string
190142
# to allow connecting from anywhere.
191143
listen_address = [
192-
"0.0.0.0",
193-
"0.0.0.0",
194-
"0.0.0.0",
195-
"0.0.0.0",
196-
"0.0.0.0",
197-
"0.0.0.0",
198-
"0.0.0.0",
199-
"0.0.0.0",
200-
"0.0.0.0",
201-
"0.0.0.0",
202-
"0.0.0.0",
203-
"0.0.0.0",
204-
"0.0.0.0",
205-
"0.0.0.0",
206-
"0.0.0.0",
207-
"0.0.0.0",
208-
"0.0.0.0",
209-
"0.0.0.0",
210-
"0.0.0.0",
211-
"0.0.0.0",
212-
"0.0.0.0",
144+
"0.0.0.0",
145+
"0.0.0.0",
146+
"0.0.0.0",
147+
"0.0.0.0"
213148
]
214-
listen_port = [9501, 9502, 9503, 9504, 9505, 9506, 9507, 9508, 9509, 9510, 9511, 9512, 9513, 9514, 9515, 9516, 9517, 9518, 9519, 9520]
149+
listen_port = [9501, 9502, 9503, 9504]
215150

216151
# Login cookie duration in seconds. The duration is refreshed on every
217152
# manual request.
@@ -222,7 +157,7 @@ cookie_duration = 10800
222157
# IP address is the one listed in the request headers or not. For
223158
# example, if you're using nginx as a load balancer, you will likely
224159
# want to set this value to 1.
225-
num_proxies_used = 0
160+
num_proxies_used = 1
226161

227162
# If CWSs write submissions to disk before storing them in the DB, and
228163
# where to save them. %s = DATA_DIR.
Lines changed: 25 additions & 145 deletions
Original file line numberDiff line numberDiff line change
@@ -1,157 +1,37 @@
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+
112
server {
213
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 ไว้ก่อนก็ได้
915

16+
# 2. ตั้งค่าการส่งต่อ (Proxy Pass)
1017
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 รู้ตัวตนคนเข้า
11521
proxy_set_header Host $host;
11622
proxy_set_header X-Real-IP $remote_addr;
11723
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;
14525

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";
15030
}
15131

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;
15636
}
15737
}

docker/docker-compose.dev.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ services:
4848
# *** สำคัญ: รับไฟล์ Static ที่แชร์มาจาก CMS ***
4949
- cms_static_files:/var/www/static:ro
5050
- ../config-data/html:/var/www/html:ro
51+
52+
- ../my_static:/var/www/static:ro
5153
networks:
5254
- cms-net
5355

0 Bytes
Binary file not shown.
0 Bytes
Binary file not shown.
0 Bytes
Binary file not shown.

docker/pg_data/global/pg_control

0 Bytes
Binary file not shown.
0 Bytes
Binary file not shown.
0 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)