traefik 默认没有配置文件,需要自己根据官网参考文件进行整理,下面我根据官网信息,进行整理优化了一个主配置文件,纤细信息如下:


```

[root@trarfik-test config]# more traefik.toml 

##开启debug 模式,Default,false

debug = true


##日志级别, "DEBUG", "INFO", "WARN", "ERROR", "FATAL", "PANIC"

logLevel = "INFO"


##Traefik 服务日志,如果不配置,日志将屏幕输出;

#traefikLogsFile = "/etc/traefik/log/traefik.log"



##成功访问日志

accessLogsFile = "/etc/traefik/log/access.log"


##与后端连接保持时间,避免反复与后端服务建立连接,Default,"2s"

##ProvidersThrottleDuration = "5s"

ProvidersThrottleDuration = 5


###控制最大空闲连接数,使用net/http模块,试过设置为0 ,则不限制,如果看到'too many open files' 报错,建议修改系统层`ulimit`值

,Default: 200

maxIdleConnsPerHost = 60000


###如果设置为true,将使用后端服务SSL证书。注意:这禁用中间人***的检测只能用于后端网络安全。Default: false

#insecureSkipVerify = true


###配置默认监听端口


###配置服务默认监听端口,如果想改变监听端口,可以进行单独配置

defaultEntryPoints = ["http", "https"]

[entryPoints]

  [entryPoints.http]

  address = ":80"

  compress = true

  [entryPoints.https]

  address = ":443"

  compress = true

###ssl 证书配置

    [entryPoints.https.tls]

      `entryPoints`.`https`.`tls`.`certificates`

      certFile = "/etc/traefik/ssl/www.ptengine.cn.crt"

      keyFile = "/etc/traefik/ssl/www.ptengine.cn.key"


## 管理界面监听端口

[web]

  address = ":8800"


##设置 REST API 为只读模式

  ReadOnly = false


##启用详细信息输出,会在管理界面下方打印一些错误信息,提供参考;

  [web.statistics]

  RecentErrors = 10


## To enable Traefik to export internal metrics to Prometheus

##[web.metrics.prometheus]

###  Buckets=[0.1,0.3,1.2,5.0]


### webui基本认证配置

### 密码可以编码在MD5、SHA1和BCrypt:您可以使用htpasswd生成

### 用户可以直接在toml指定文件,或间接通过引用一个外部文件;如果两个,两个并存,外部文件内容优先


### 测试配置实例

### 用户名/密码: 测试和test2:test2码:测试:测试和test2:test2


#[web.auth.basic]

#users = ["test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/", "test2:$apr1$d9hr9HBB$4HxwgUir3HP4EsggP/QNo0"]


### 指定配置文件

### usersFile = "/path/to/.htpasswd"


### 配置文件扩展,可以加载监视文件内容


[file]

##不支持监听目录,监听文件名要写死

filename = "/etc/traefik/config/rules.toml"


### 监视文件变更

watch = true


##发送请求重试

[retry]

##默认只向后端请求一次,不重试,

attempts = 3

```



使用上面的配置文件启动服务,会监听3个端口, 80:http ,443:https ,8800:api ,上面的配置文件我开启了debug 模式,实际生产环境不需要。服务启动后即可访问,api 管理界面查看一下基础信息。


#### 浏览器访问地址:

http://localhost:8800




域名转发配置参考:


配置信息如下:

```

[root@trarfik-test config]# more rules.toml 

##后端配置

#[backends]

##发送请求重试

#[retry]

###默认只向后端请求一次,不重试,

attempts = 3

  [backends.testptmindcom]

    ##后端网络错误率>0.5 停止转发;

    [backends.testptmindcom.circuitbreaker]

      expression = "NetworkErrorRatio() > 0.5"


    ##轮训方式,method=drr(加权轮训调度)default:wrr(队列轮转算法)

    [backends.testptmindcom.LoadBalancer]

      method = "drr"


    ##安全限制,单个主机连接数大于指定值,会提示“max connections reached”

    [backends.testptmindcom.maxconn]

      amount = 10

      extractorfunc = "request.host"

    ##第一台后端节点

    [backends.testptmindcom.servers.server1]

      url = "http://172.16.100.70:80"

      weight = 1


    ##第二台后端节点

    [backends.testptmindcom.servers.server2]

      url = "http://172.16.100.71:80"

      weight = 1

##前端配置

[frontends]

  #定义一个接入点的名字

  [frontends.testptmindcom]

  passHostHeader = true

  priority = 10

  ##定义调用后端名称

  backend = "testptmindcom"

    ##前端监听域名,可以监听多域名

    [frontends.testptmindcom.routes.service]

      rule = "Host:test.ptmind.com,pttest.ptmind.com;"


以上信息参考官方信息进行简单描述,如有疑惑请留言。