最近接触了traefik,写了几个traefik middle,感觉traefik很棒。
所以找了个时间看下traefik源码,学习一下。
以后出问题了也好解决。
clone代码,这里使用v2.6版本
1
| git clone --depth 1 --branch v2.6 git@github.com:traefik/traefik.git
|
配置traefik
在cmd/traefik目录下增加两个文件traefik.yaml和http.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| # traefik.yaml
# traefik启动配置文件
global:
checkNewVersion: true
sendAnonymousUsage: true
entryPoints:
web:
address: :80
websecure:
address: :443
log:
level: DEBUG
providers:
file:
filename: ./http.yaml
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| # http.yaml
# traefik动态配置文件,这个修改后traefik会热加载
http:
routers:
api:
rule: host(`prod.ppapi.cn`)
service: svc1
entryPoints:
- web
services:
svc1:
loadBalancer:
servers:
- url: "http://localhost:8999"
|
这里我是本地调试,所以配置了个prod.ppapi.cn指向127.0.0.1
1
2
| # 启动一个service作为endpoint
docker run -d -p 8999:80 -it containous/whoami
|
启动traefik
1
2
| cd cmd/traefik
go run traefik.go
|
等待依赖下载完成启动traefik,输入curl prod.ppapi.cn(prod.ppapi.cn的host是127.0.0.1) 可以看到whoami输出信息。
到这一步,traefik代码环境就完成了,接下来就可以调试分析traefik代码了。