traefik使用etcd作为后端配置存储配置实例
功能测试目的:
<代码> 1:Traefik作为web服务,使用了要领库作为配置统一存储空间,实现Traefik服务可以方便的增删节点,解耦Traefik服务启动后服务配置的问题。 2:Traefik使用http验证方式申请ssl证书,即每配置一个域名让Traefik帮我们自动申请一个ssl证书。代码>
测试步骤如下:
<代码> 1:安装traefik 1.7 + 2:安装etcd 3:安装Etcdkeeper 4:配置traefik对接etcd库 代码>
演示环境
<代码>使用AWS云平台测试: 云主机一台,配置公网IP地址,开放80 443 8080 1180端口 traefik v1.7 + web服务 占用端口: http 80 https 443 traefik管理页8080面 配置目录/etc/traefik Etcd: 高可用,强一致性的服务发现存储仓库, 作为traefik后端配置存储 占用端口: 2379年外部客户端连接 2380年etcd服务间通信 Etcdkeeper: Etcd web界面,支持v3的api 占用端口(可以自己设置):11800 码头工人: 用于模拟快速启动一个后端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-amd64 mv traefik_linux-amd64/usr/bin/traefik chmod 755/usr/bin/traefik mkdir - p/etc/traefik 触摸/etc/traefik/acme.json chmod 755/etc/traefik chmod 600/etc/traefik/acme.json 代码>
验证版本
<代码> [root@ip - 10 - 3 - 1 - 119 traefik] # traefik版本 版本:v1.7.19 代号:maroilles 版本:go1.12.12 建:2019 - 10 - 28 - _02:07:32pm OS/拱:linux/amd64 代码>
至此traefik配置完毕! ! !
启动后端Web服务,为后面的测试做准备
<代码>码头工人运行- d - p 8880:80 containous/显示本用户信息 码头工人运行- d - p 8890:80 containous/whoami 代码>
主配置文件
<代码> vi/etc/traefik/traefik.toml 代码>
<代码> #开启调试模式,方便调试,默认情况下,假的 debug=true #日志级别,“调试”、“信息”、“警告”、“错误”,“死亡”,“恐慌” logLevel="信息" #同时支持http和https defaultEntryPoints=(“http”、“https”) (entryPoints) (entryPoints.http) 地址=":80 " #启用压缩传输 压缩=true # http强制跳转https (entryPoints.http.redirect) 入口点=癶ttps” (entryPoints.https) 地址=":443 " #启用压缩传输 压缩=true (entryPoints.https.tls) #配置自动我们加密证书 (acme) 电子邮件=発jh@mail.com” # #加密文件的存储位置 存储="/etc/traefik/acme.json” # #证书类型,必需指向到一个443端口 入口点=癶ttps” #在新域名接受第一次https请求时申请证书 “点播”=false #自动为acme.entryPoint下的新域名申请证书 onHostRule=true (acme.httpChallenge) # acme验证方式支持dns, http, tls,本次使用https # https://letsencrypt.org/zh-cn/docs/challenge-types/入口点=癶ttp” #开启日志功能 #成功访问日志 (accessLog) filePath="/var/log/traefik/acceslog.txt” 格式=" json " #服务启动日志 (traefikLog) filePath="/var/log/traefik/traefik.log” #开启网络管理端 (网络) 地址=":8080 " #设置RESTAPI为只读模式 只读的=true (web.auth.basic) #测试/测试登陆名/密码可用openssl生成 #用户=[”测试:$ apr1 H6uskkkW IgXLP6ewTrSuBkTrqE8wj美元/? #启用详细信息输出,会在管理界面下方打印一些错误信息,提供参考; (web.statistics) ecentErrors=10 #开启api,修改服务配置,生产环境推荐添加加密认证 (api) 入口点=" traefik " #开启管理面板 仪表板=true debug=true #使用文件方式管理配置 (文件) #在指定目录查找配置文件 目录="/etc/traefik/规则” #监视文件变更 看=true #使用etcd作为存储开启此配置,需要与文件管理配置同时开启,不然无法正常同步配置 (etcd) #节点地址:端口 端点=" 10.3.1.119:2379 " #强制使用v3版本api useAPIV3=true #监视配置变更 看=truetraefik使用etcd存储配置——实例演示