traefik yml配置

 静态配置 traefik.yml

# 流量入口
entryPoints:
  # 定义入口,任意起名
  web:
    # 监听端口
    address: :80
    forwardedHeaders:
      insecure: true
  #    http:
  #      redirections:
  #        #转发到另一个入口
  #        entryPoint:
  #          to: websecure
  #          scheme: https
  # 443入口,任意起名
  websecure:
    address: :443
    forwardedHeaders:
      insecure: true

# 动态配置
providers:
  file:
    filename: gateway/dynamic_conf.yml

# 工作日志
log:
  filePath: gateway/traefik.log

# 访问日志
accessLog:
  filePath: gateway/access.log
  # 保留在内存中的日志行数
  bufferingSize: 100
  fields:
    names:
      # 设置本地时区,不然默认是0时区时间输出
      StartLocal: keep
      StartUTC: drop

api:
  # false为启用安全访问
  insecure: false

动态配置 dynamic_conf.yml

http:
  routers:
    #定义一个路由,任意起名
    #项目前端
    project-ui:
      # 匹配规则,满足规则后会执行中间件,在调用服务
      rule: "Host(`project.com`)"
      service: project-ui
      # 匹配权重,0是无权重,越大越优先匹配
      #      priority: 0
      middlewares:
        - breaker
        - limit
        - errorpage

    # 项目后端
    project-backend:
      # PathPrefix 路径前缀 匹配 project.com/backend/*
      rule: "Host(`project.com`) && PathPrefix(`/backend`)"
      service: project-backend
      middlewares:
        - breaker
        - limit
        # 访问 /backend/*,实际请求转发的是 localhost:8082/*
        - strip
        - errorpage

    # 服务中心
    project-consul:
      # PathPrefix 路径前缀 匹配 project.com/consul/*,实际请求转发的是 localhost:8500/consul/*
      rule: "Host(`project.com`) && (PathPrefix(`/consul`)|| PathPrefix(`/v1`) )"
      middlewares:
        # 使用自定义的中间件
        - auth
      service: project-consul

    # traefik 内置web仪表盘
    dashboard:
      rule: "Host(`project.com`) && (PathPrefix(`/api`) || PathPrefix(`/dashboard`))"
      # 内部api服务
      service: api@internal
      # 使用中间件,auth安全访问
      middlewares:
        - auth

  middlewares:
    # 定义一个中间件,任意起名
    # 用户认证
    auth:
      # 使用官方的中间件
      basicAuth:
        usersFile: gateway/auth
    # 断路器
    breaker:
      circuitBreaker:
        # 网络错误率达到10%时,打开断路器
        # 或者
        # 25%的请求返回5XX状态(在返回状态代码从0到5XX的请求中),打开断路器
        # 断路器打开后,服务就会不可用,过段时间会自动恢复
        expression: NetworkErrorRatio() > 0.10 || ResponseCodeRatio(500, 600, 0, 600) > 0.25
    # 限流
    limit:
      rateLimit:
        # 每秒请求数
        average: 10
    # 跳过前缀路径
    strip:
      stripPrefix:
        prefixes:
          - /backend
    # 错误页面
    errorpage:
      errors:
        # 指定状态码
        status:
          - 500-599
          - 404
        service: project-ui
        # 服务提供错误页面的网址
        query: /{status}.html

  services:
    # 定义一个服务,任意起名
    project-ui:
      # 负载均衡,轮询策略
      loadBalancer:
        # 配置多个服务器
        servers:
          - url: http://localhost:8081
        healthCheck:
          path: /health
          interval: 10s
          timeout: 3s

    # 项目后端服务
    project-backend:
      # 负载均衡,轮询策略
      loadBalancer:
        servers:
          - url: http://localhost:8082
        # 健康检查,每隔10s,检查一次,也就是去请求/health
        healthCheck:
          # 检查路径,自定义起名,自己服务器需支持此路径
          # 返回状态代码2XX或3XX就认为是健康的,否则不健康会被移除
          path: /health
          # 检查调用的频率,每10秒调用一次
          interval: 10s
          # 超时时间设置
          timeout: 3s

    # 项目服务中心
    project-consul:
      # 负载均衡,轮询策略
      loadBalancer:
        servers:
          - url: http://localhost:8500
        healthCheck:
          path: /v1/agent/checks
          interval: 10s
          timeout: 3s

 gateway/auth认证文件,认证一次,所有子系统通用,退出浏览器失效 

ps: 密码必须使用MD5,SHA1或BCrypt进行哈希处理,可以使用htpasswd生成的密码。

在线生成工具

test:$apr1$yjHwJ6kr$szcYpC.dwpayQYlZu4N5d1

启动命令 --configFile 值为相对工作目录的配置文件位置

traefik --configFile=gateway/traefik.yml

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值