traefik使用etcd存储配置--实例演示
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,traefik 使用etcd 作为后端配置存储配置实例功能测试目的:1:Traefik 作为web服务,使用etd库作为配置统一存储空间,实现traefik服务可以方便的增删节点,解耦traefik服
千家信息网最后更新 2025年12月02日traefik使用etcd存储配置--实例演示
traefik 使用etcd 作为后端配置存储配置实例
功能测试目的:
1:Traefik 作为web服务,使用etd库作为配置统一存储空间,实现traefik服务可以方便的增删节点,解耦traefik服务启动后服务配置的问题。2:Traefik 使用http验证方式申请ssl证书,即每配置一个域名让traefik 帮我们自动申请一个ssl证书.测试步骤如下:
1:安装 traefik 1.7+ 2:安装 etcd3:安装 Etcdkeeper4:配置 traefik 对接 etcd 库演示环境
使用AWS云平台测试:云主机一台、配置公网IP地址,开放80 443 8080 1180 端口traefik v1.7+ web 服务占用端口:http 80 https 443 traefik 管理页面 8080配置目录 /etc/traefik Etcd:高可用、强一致性的服务发现存储仓库,作为traefik 后端配置存储 占用端口:外部客户端连接 2379etcd服务间通信 2380Etcdkeeper:Etcd web界面,支持v3的api占用端口(可以自己设置):11800Docker :用于模拟快速启动一个后端web服务镜像地址:containous/whoami 安装 traefik
占用端口:http 80 https 443 traefik 管理页面 8080配置目录 /etc/traefik 步骤如下:
wget https://github.com/containous/traefik/releases/download/v1.7.19/traefik_linux-amd64mv traefik_linux-amd64 /usr/bin/traefikchmod 755 /usr/bin/traefik mkdir -p /etc/traefik touch /etc/traefik/acme.jsonchmod 755 /etc/traefik chmod 600 /etc/traefik/acme.json验证版本
[root@ip-10-3-1-119 traefik]# traefik versionVersion: v1.7.19Codename: maroillesGo version: go1.12.12Built: 2019-10-28_02:07:32PMOS/Arch: linux/amd64至此traefik配置完毕 !!!
启动后端Web服务,为后面的测试做准备
docker run -d -p 8880:80 containous/whoamidocker run -d -p 8890:80 containous/whoami主配置文件
vi /etc/traefik/traefik.toml#开启debug 模式,方便调试,Default,falsedebug = true#日志级别, "DEBUG", "INFO", "WARN", "ERROR", "FATAL", "PANIC"logLevel = "INFO"# 同时支持http和httpsdefaultEntryPoints = ["http", "https"][entryPoints] [entryPoints.http] address = ":80" #启用压缩传输 compress = true #http强制跳转https [entryPoints.http.redirect] entryPoint = "https" [entryPoints.https] address = ":443" #启用压缩传输 compress = true [entryPoints.https.tls]# 配置自动Let's Encrypt证书[acme]email = "kjh@mail.com"##加密文件的存储位置storage = "/etc/traefik/acme.json"##证书类型,必需指向到一个443端口entryPoint = "https"#在新域名接受第一次https请求时申请证书onDemand = false#自动为acme.entryPoint下的新域名申请证书onHostRule = true [acme.httpChallenge] #acme 验证方式支持 dns 、http、tls,本次使用https #https://letsencrypt.org/zh-cn/docs/challenge-types/ entryPoint="http"# 开启日志功能#成功访问日志[accessLog]filePath = "/var/log/traefik/acceslog.txt"format = "json"#服务启动日志[traefikLog]filePath = "/var/log/traefik/traefik.log"# 开启web管理端[web]address = ":8080"#设置RESTAPI 为只读模式readOnly = true[web.auth.basic]#test/test 登陆名/密码 可用openssl生成 #users = ["test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/"]#启用详细信息输出,会在管理界面下方打印一些错误信息,提供参考;[web.statistics]ecentErrors = 10#开启api,修改服务配置,生产环境推荐添加加密认证[api] entryPoint = "traefik" #开启管理面板 dashboard = true debug = true#使用文件方式管理配置[file]#在指定目录查找配置文件directory = "/etc/traefik/rules"#监视文件变更watch = true#使用etcd作为存储开启此配置,需要与文件管理配置同时开启,不然无法正常同步配置[etcd]#节点地址:端口endpoint = "10.3.1.119:2379"#强制使用v3版本apiuseAPIV3 = true#监视配置变更watch = true添加反向代理配置文件
/etc/traefik/rulesweb域名为:kjh.pt1.jp后端服务:http://54.238.247.28:8880http://10.3.1.119:8890vi /etc/traefik/rules/kjh.pt1.toml添加配置如下:[frontends] [frontends.ft01] backend = "bk01" [frontends.ft01.routes.rule_1] rule = "Host:kjh.pt1.jp,kjh01.pt1.jp"[backends] [backends.bk01] [backends.bk01.servers.server1] url = "http://54.238.247.28:8880" weight = 10 [backends.bk01.servers.server2] url = "http://10.3.1.119:8890" weight = 10注意:上面配置的域名需要先在dns 做解析,指向traefik节点IP地址,不然无法正常申请ssl证书!!!
安装etcd
yum install etcd -yvi /etc/etcd/etcd.conf修改 ttp://localhost:2379 为 http://0.0.0.0:2379#主要修改项如下:ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"ETCD_ADVERTISE_CLIENT_URLS="http://0.0.0.0:2379"#启动服务systemctl daemon-reloadsystemctl start etcdsystemctl status etcd安装 etcdkeeper
wget https://github.com/evildecay/etcdkeeper/releases/download/v0.7.5/etcdkeeper-v0.7.5-linux_x86_64.zipunzip etcdkeeper-v0.7.5-linux_x86_64.zipcd etcdkeeperchmod 755 etcdkeeper#后台启动./etcdkeeper -p 11800 &浏览器访问:
http://节点IP地址:11800/
如果可以浏览 etd 库内容为正常,但此时并无文件;
将traefik 配置将存储至etcd
同步traefik 配置至 etcd库
traefik storeconfig -c traefik.toml[root@ip-10-3-1-119 traefik]# traefik storeconfig traefik.toml........0,"DebugLogGeneratedTemplate":false,"Directory":"/etc/traefik/rules","TraefikFile":""}2020/01/05 21:19:22 Writing config to KV验证
1:导入配置时返回信息无报错,返回 Writing config to KV;
2:访问etcd ui ,查看traefik配信息是否导入成功,显示目录大致如下;
/etctraefik启动traefik 服务
执行traefik 命令即可,默认会到/etc/traefik/目录下寻找配置文件。总验
访问traefik 节点IP地址:8080 可以看到 文件的配置和KV 库的配置,配置文件配置的域名可以正常访问。
效果图如下:

参考文档:
https://zhuanlan.zhihu.com/p/74042144
https://www.cnblogs.com/morang/p/10390055.html
https://ystyle.top/2017/12/08/traefik-getting-start/
https://jupyterhub-traefik-proxy.readthedocs.io/en/latest/toml.html
https://my.oschina.net/guol/blog/2209678
配置
服务
文件
存储
端口
证书
管理
地址
域名
目录
节点
信息
日志
测试
验证
方式
支持
成功
功能
同时
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
常州iosapp软件开发
引入网络安全设备
计算机终端和服务器怎么看
服务器与交换机网线链接
php数据库信息修改失败
现代移动通信网络技术论文
按键精灵服务器常见故障
网络安全作业审批表
网络安全最大内容
数据库主码可以相同吗
企业账务软件开发
怎么看服务器的cpu型号
网络技术应用作文
一个服务器可以开几个sf
常见的网络安全体系架构
江苏软件开发税务筹划如何做
微软web 服务器
河北高科技软件开发材料
金属晶体结构数据库和检索工具
网络安全技术工程师
我的世界国际版社交服务器
格力硬件网络技术支持
33岁转行软件开发来得及吗
吕梁市网络安全活动
锦州软件开发学校
密码法筑牢网络安全防线
数据库安全管理是做什么的
广东嵌入式软件开发服务费
北京党员量化积分管理软件开发
数据库可变长