【重要】traefik 配置
This commit is contained in:
@@ -2,7 +2,7 @@ version: '3.8'
|
|||||||
|
|
||||||
services:
|
services:
|
||||||
traefik:
|
traefik:
|
||||||
image: traefik:v3.0
|
image: traefik:latest
|
||||||
container_name: traefik
|
container_name: traefik
|
||||||
networks:
|
networks:
|
||||||
- traefik-net
|
- traefik-net
|
||||||
@@ -10,30 +10,18 @@ services:
|
|||||||
- "80:80"
|
- "80:80"
|
||||||
- "8080:8080"
|
- "8080:8080"
|
||||||
volumes:
|
volumes:
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
- ./traefik.yml:/etc/traefik/traefik.yml
|
- ./traefik.yml:/etc/traefik/traefik.yml
|
||||||
- ./dynamic.yml:/etc/traefik/dynamic.yml # 动态配置文件
|
- ./dynamic.yml:/etc/traefik/dynamic.yml
|
||||||
|
- ./log-file.log:/etc/traefik/log-file.log
|
||||||
|
- ./access.log:/etc/traefik/access.log
|
||||||
restart: always
|
restart: always
|
||||||
|
|
||||||
whoami:
|
whoami:
|
||||||
image: traefik/whoami
|
image: traefik/whoami:latest
|
||||||
labels:
|
labels:
|
||||||
- "traefik.http.routers.whoami.rule=Host(`whoami.localhost`)"
|
- "traefik.http.routers.whoami.rule=Host(`whoami.localhost`)"
|
||||||
|
|
||||||
# 2. Nacos 服务监听脚本
|
|
||||||
# nacos-cluster-watcher:
|
|
||||||
# user: "root"
|
|
||||||
# privileged: true
|
|
||||||
# image: node:24.8.0-alpine3.21
|
|
||||||
# container_name: nacos-cluster-watcher
|
|
||||||
# # network_mode: "host"
|
|
||||||
# networks:
|
|
||||||
# - traefik-net
|
|
||||||
# working_dir: /app
|
|
||||||
# volumes:
|
|
||||||
# - ./:/app # 挂载当前目录到容器
|
|
||||||
# command: sh -c "npm install && node src/index.js"
|
|
||||||
# restart: always
|
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
traefik-net:
|
traefik-net:
|
||||||
driver: bridge
|
driver: bridge
|
||||||
|
|||||||
@@ -1,68 +1,107 @@
|
|||||||
http:
|
http:
|
||||||
routers:
|
routers:
|
||||||
app-product-router:
|
|
||||||
rule: PathPrefix(`/app-product`)
|
|
||||||
service: app-product-service
|
|
||||||
entryPoints:
|
|
||||||
- web
|
|
||||||
middlewares:
|
|
||||||
- compress
|
|
||||||
- ipWhiteList
|
|
||||||
- rateLimit
|
|
||||||
- retries
|
|
||||||
main-app-router:
|
|
||||||
rule: PathPrefix(`/main-app`)
|
|
||||||
service: main-app-service
|
|
||||||
entryPoints:
|
|
||||||
- web
|
|
||||||
middlewares:
|
|
||||||
- compress
|
|
||||||
- ipWhiteList
|
|
||||||
- rateLimit
|
|
||||||
- retries
|
|
||||||
app-shared-router:
|
app-shared-router:
|
||||||
rule: PathPrefix(`/app-shared`)
|
rule: Host(`nacos.ddd.com`) && PathPrefix(`/app-shared`)
|
||||||
service: app-shared-service
|
service: app-shared-service
|
||||||
|
observability:
|
||||||
|
metrics: true
|
||||||
|
accessLogs: true
|
||||||
|
tracing: true
|
||||||
|
traceVerbosity: detailed
|
||||||
entryPoints:
|
entryPoints:
|
||||||
- web
|
- web
|
||||||
middlewares:
|
|
||||||
- compress
|
app-product-router:
|
||||||
- ipWhiteList
|
rule: Host(`nacos.ddd.com`) && PathPrefix(`/app-product`)
|
||||||
- rateLimit
|
service: app-product-service
|
||||||
- retries
|
observability:
|
||||||
|
metrics: true
|
||||||
|
accessLogs: true
|
||||||
|
tracing: true
|
||||||
|
traceVerbosity: detailed
|
||||||
|
entryPoints:
|
||||||
|
- web
|
||||||
|
|
||||||
|
# 使用域名访问前端main-app
|
||||||
|
main-ddd-router:
|
||||||
|
rule: Host(`main.ddd.com`)
|
||||||
|
service: main-ddd-service
|
||||||
|
observability:
|
||||||
|
metrics: true
|
||||||
|
accessLogs: true
|
||||||
|
tracing: true
|
||||||
|
traceVerbosity: detailed
|
||||||
|
entryPoints:
|
||||||
|
- web
|
||||||
|
|
||||||
|
# Nacos 集群 管理后台的统一访问域名
|
||||||
|
nacosui-ddd-router:
|
||||||
|
rule: Host(`nacosui.ddd.com`)
|
||||||
|
service: nacosui-ddd-service
|
||||||
|
observability:
|
||||||
|
metrics: true
|
||||||
|
accessLogs: true
|
||||||
|
tracing: true
|
||||||
|
traceVerbosity: detailed
|
||||||
|
entryPoints:
|
||||||
|
- web
|
||||||
|
|
||||||
|
# trafik 网关 代理 内网 nacos 集群 的地址
|
||||||
|
nacos-ddd-router:
|
||||||
|
rule: Host(`nacos.ddd.com`)
|
||||||
|
service: nacos-ddd-service
|
||||||
|
observability:
|
||||||
|
metrics: true
|
||||||
|
accessLogs: true
|
||||||
|
tracing: true
|
||||||
|
traceVerbosity: detailed
|
||||||
|
entryPoints:
|
||||||
|
- web
|
||||||
|
|
||||||
|
# trafik 网关的管理后台的域名
|
||||||
|
trafikui-ddd-router:
|
||||||
|
rule: Host(`trafikui.ddd.com`)
|
||||||
|
service: trafikui-ddd-service
|
||||||
|
observability:
|
||||||
|
metrics: true
|
||||||
|
accessLogs: true
|
||||||
|
tracing: true
|
||||||
|
traceVerbosity: detailed
|
||||||
|
entryPoints:
|
||||||
|
- web
|
||||||
|
|
||||||
|
|
||||||
services:
|
services:
|
||||||
app-product-service:
|
|
||||||
loadBalancer:
|
|
||||||
servers:
|
|
||||||
- url: http://192.168.31.101:1301
|
|
||||||
main-app-service:
|
|
||||||
loadBalancer:
|
|
||||||
servers:
|
|
||||||
- url: http://192.168.31.101:1300
|
|
||||||
app-shared-service:
|
app-shared-service:
|
||||||
loadBalancer:
|
loadBalancer:
|
||||||
servers:
|
servers:
|
||||||
- url: http://192.168.31.101:1333
|
- url: http://192.168.31.101:1333
|
||||||
middlewares:
|
|
||||||
rateLimit:
|
app-product-service:
|
||||||
rateLimit:
|
loadBalancer:
|
||||||
average: 100
|
servers:
|
||||||
burst: 200
|
- url: http://192.168.31.101:1301
|
||||||
period: 1s
|
|
||||||
sourceCriterion:
|
main-ddd-service:
|
||||||
ipStrategy:
|
loadBalancer:
|
||||||
depth: 2
|
servers:
|
||||||
compress:
|
- url: http://192.168.31.101:1300
|
||||||
compress:
|
|
||||||
excludedContentTypes:
|
nacosui-ddd-service:
|
||||||
- text/event-stream
|
loadBalancer:
|
||||||
minResponseBodyBytes: 1024
|
servers:
|
||||||
ipWhiteList:
|
- url: http://192.168.139.84:8080
|
||||||
ipWhiteList:
|
- url: http://192.168.139.15:8080
|
||||||
sourceRange:
|
- url: http://192.168.139.178:8080
|
||||||
- 127.0.0.1/32
|
|
||||||
- 192.168.107.0/24
|
nacos-ddd-service:
|
||||||
retries:
|
loadBalancer:
|
||||||
retry:
|
servers:
|
||||||
attempts: 3
|
- url: http://192.168.139.84:8848
|
||||||
initialInterval: 200ms
|
- url: http://192.168.139.15:8848
|
||||||
|
- url: http://192.168.139.178:8848
|
||||||
|
|
||||||
|
trafikui-ddd-service:
|
||||||
|
loadBalancer:
|
||||||
|
servers:
|
||||||
|
- url: http://192.168.139.80:8080
|
||||||
@@ -10,7 +10,25 @@ entryPoints:
|
|||||||
|
|
||||||
# 服务发现与配置源(关键:子项缩进必须一致)
|
# 服务发现与配置源(关键:子项缩进必须一致)
|
||||||
providers:
|
providers:
|
||||||
|
docker: { }
|
||||||
# 动态路由规则文件
|
# 动态路由规则文件
|
||||||
file:
|
file:
|
||||||
filename: "/etc/traefik/dynamic.yml"
|
filename: "/etc/traefik/dynamic.yml"
|
||||||
watch: true # 自动监听文件变化
|
watch: true # 自动监听文件变化
|
||||||
|
|
||||||
|
log:
|
||||||
|
filePath: "/etc/traefik/log-file.log"
|
||||||
|
format: common
|
||||||
|
level: INFO
|
||||||
|
|
||||||
|
accessLog:
|
||||||
|
filePath: "/etc/traefik/access.log"
|
||||||
|
format: "json"
|
||||||
|
addInternals: true
|
||||||
|
filters:
|
||||||
|
retryAttempts: true
|
||||||
|
minDuration: "2ms"
|
||||||
|
fields:
|
||||||
|
defaultMode: "keep"
|
||||||
|
headers:
|
||||||
|
defaultMode: "keep"
|
||||||
|
|||||||
Reference in New Issue
Block a user