orztv commited on
Commit
0d6c78b
·
1 Parent(s): 82d4c8e
Files changed (3) hide show
  1. services.json +21 -21
  2. start.sh +9 -6
  3. traefik/traefik.yml +9 -0
services.json CHANGED
@@ -1,24 +1,24 @@
1
  [
2
- {
3
- "name": "python-service",
4
- "command": "python -m http.server",
5
- "port": 8000,
6
- "path_prefix": "/python",
7
- "health_check_path": "/",
8
- "env": {
9
- "PYTHONUNBUFFERED": "1"
 
 
10
  },
11
- "working_dir": "/home/pn/app/python"
12
- },
13
- {
14
- "name": "node-service",
15
- "command": "npx http-server -p",
16
- "port": 8001,
17
- "path_prefix": "/node",
18
- "health_check_path": "/",
19
- "env": {
20
- "NODE_ENV": "production"
21
- },
22
- "working_dir": "/home/pn/app/node"
23
- }
24
  ]
 
1
  [
2
+ {
3
+ "name": "python-service",
4
+ "command": "python -m http.server",
5
+ "port": 8000,
6
+ "path_prefix": "/python",
7
+ "health_check_path": "/",
8
+ "env": {
9
+ "PYTHONUNBUFFERED": "1"
10
+ },
11
+ "working_dir": "/home/pn/app/python"
12
  },
13
+ {
14
+ "name": "node-service",
15
+ "command": "npx http-server -p",
16
+ "port": 8001,
17
+ "path_prefix": "/node",
18
+ "health_check_path": "/",
19
+ "env": {
20
+ "NODE_ENV": "production"
21
+ },
22
+ "working_dir": "/home/pn/app/node"
23
+ }
 
 
24
  ]
start.sh CHANGED
@@ -18,11 +18,13 @@ generate_traefik_config() {
18
  echo "http:" > $dynamic_config
19
  echo " routers:" >> $dynamic_config
20
 
21
- # 添加根路径路由
22
  echo " root:" >> $dynamic_config
23
- echo " rule: \"PathPrefix(\`/\`)\"" >> $dynamic_config
24
  echo " service: root" >> $dynamic_config
25
  echo " priority: 1" >> $dynamic_config
 
 
26
 
27
  echo "$services" | while read -r service; do
28
  name=$(echo $service | jq -r '.name')
@@ -33,7 +35,7 @@ generate_traefik_config() {
33
  echo " rule: \"PathPrefix(\`$path_prefix\`)\"" >> $dynamic_config
34
  echo " service: $name" >> $dynamic_config
35
  echo " middlewares:" >> $dynamic_config
36
- echo " - strip-prefix" >> $dynamic_config
37
  done
38
 
39
  echo " services:" >> $dynamic_config
@@ -55,11 +57,12 @@ generate_traefik_config() {
55
  done
56
 
57
  echo " middlewares:" >> $dynamic_config
58
- echo " strip-prefix:" >> $dynamic_config
59
- echo " stripPrefix:" >> $dynamic_config
60
- echo " prefixes:" >> $dynamic_config
61
  echo "$services" | while read -r service; do
 
62
  path_prefix=$(echo $service | jq -r '.path_prefix')
 
 
 
63
  echo " - \"$path_prefix\"" >> $dynamic_config
64
  done
65
  }
 
18
  echo "http:" > $dynamic_config
19
  echo " routers:" >> $dynamic_config
20
 
21
+ # 添加根路径路由,并应用认证中间件
22
  echo " root:" >> $dynamic_config
23
+ echo " rule: \"PathPrefix(\`/\`) && !PathPrefix(\`/python\`) && !PathPrefix(\`/node\`) && !PathPrefix(\`/dashboard\`)\"" >> $dynamic_config
24
  echo " service: root" >> $dynamic_config
25
  echo " priority: 1" >> $dynamic_config
26
+ echo " middlewares:" >> $dynamic_config
27
+ echo " - auth" >> $dynamic_config
28
 
29
  echo "$services" | while read -r service; do
30
  name=$(echo $service | jq -r '.name')
 
35
  echo " rule: \"PathPrefix(\`$path_prefix\`)\"" >> $dynamic_config
36
  echo " service: $name" >> $dynamic_config
37
  echo " middlewares:" >> $dynamic_config
38
+ echo " - ${name}-strip-prefix" >> $dynamic_config
39
  done
40
 
41
  echo " services:" >> $dynamic_config
 
57
  done
58
 
59
  echo " middlewares:" >> $dynamic_config
 
 
 
60
  echo "$services" | while read -r service; do
61
+ name=$(echo $service | jq -r '.name')
62
  path_prefix=$(echo $service | jq -r '.path_prefix')
63
+ echo " ${name}-strip-prefix:" >> $dynamic_config
64
+ echo " stripPrefix:" >> $dynamic_config
65
+ echo " prefixes:" >> $dynamic_config
66
  echo " - \"$path_prefix\"" >> $dynamic_config
67
  done
68
  }
traefik/traefik.yml CHANGED
@@ -17,3 +17,12 @@ providers:
17
  api:
18
  insecure: true
19
  dashboard: true
 
 
 
 
 
 
 
 
 
 
17
  api:
18
  insecure: true
19
  dashboard: true
20
+ path: /dashboard
21
+
22
+ # 添加基本认证中间件
23
+ http:
24
+ middlewares:
25
+ auth:
26
+ basicAuth:
27
+ users:
28
+ - "admin:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/" # 密码是 "pass"