Treafik 实践

作者: 思考蛙 | 来源:发表于2019-04-03 06:37 被阅读0次

背景

此次项目的的特殊性:
1、项目需部署在B服务器上
2、请求入口为 A 服务器绑定的域名目录(weixin.domain.com/spring)
3、B 服务器要部署3个应用

  • H5 活动应用
  • 活动管理系

B 服务器资源配置如下

编号 类别 名称 路径 用途 开放端口 请求地址 运行方式
1 软件 Docker /usr/bin/docker/etc/docker 应用容器引擎 —— weixin.chinauff.com/spring 系统启动
2 Docker Image traefik /usr/local/spring-service 容器及应用反向代理 80 weixin.chinauff.com/spring docker
3 Docker Image spring/qrcode /usr/local/spring-qrcode-server 二维码生成服务 —— spring.chinauff.com/qrcode docker-compose
4 Application H5 春节活动应用 /usr/local/spring-h5 春节活动前端应用 —— weixin.chinauff.com/spring pm2
5 Application Admin Server /usr/local/spring-server 管理系统 、API服务 —— sping.chinauff.com pm2
6 Docker image 静态文件服务 /usr/local/spring.static 前后端所用到的静态文件资源服务 —— spring.chinauff.com/static docker-compose

Traefik 的 docker-compose

version: '3'
 
services:
  reverse-proxy:
    image: traefik
    restart: always
    container_name: traefik
    ports:
      - 80:80
      - 8360:8360
      - 127.0.0.1:4399:4399
      - 127.0.0.1:4398:4398
    networks:
      - traefik
    command: traefik -c /etc/traefik.toml
    volumes:
# 仅限标准的 Linux 环境
      - /etc/localtime:/etc/localtime
      - /etc/timezone:/etc/timezone
      - /var/run/docker.sock:/var/run/docker.sock
      - ./traefik.toml:/etc/traefik.toml
      - ./logs:/data/logs
 
networks:
  traefik:
    external: true

Treafik 拓扑逻辑图

image.png

Treafik.toml


# 激活调试模式 (默认关闭)
debug = false

# 日志等级 (默认 ERROR)
logLevel = "INFO"

# 全局入口点类型 (默认 http)
defaultEntryPoints = ["http"]

# 不上报统计信息
sendAnonymousUsage = false

################################################################
# 入口点设置
################################################################

[entryPoints]

    # 默认前端
    [entryPoints.http]
        address = ":80"
        compress = true
    [entryPoints.spring]
        address = ":8360"


    # 控制台端口
    [entryPoints.traefik-api]
        address = ":4399"
# 如果不想公开控制台,可以参考下面的配置生成你自己的 BA 账号密码
        [entryPoints.traefik-api.auth]
            [entryPoints.traefik-api.auth.basic]
                #htpasswd -nb soulteary soulteary
        users = ["baisheng:$apr1$jfu00Ykt$ZXZwEGbTn8Gq1ND33SloF/","admin:$apr1$uSjZJvnR$tsJxOce5ibB2PdkhV8Hub/"]

    # Ping端口
    [entryPoints.traefik-ping]
        address = ":4398"

################################################################
# Traefik File configuration
################################################################

[file]
    [backends]
        [backends.dashboard]
            [backends.dashboard.servers.server1]
                url = "http://127.0.0.1:4399"
        [backends.ping]
            [backends.ping.servers.server1]
                url = "http://127.0.0.1:4398"
        [backends.chinauff]
            [backends.chinauff.servers.server1]
                url = "http://127.0.0.1:4399"
        [backends.springH5]
            [backends.springH5.servers.server1]
                #url = "http://192.168.25.88:8360"
                url = "http://192.168.25.88:3000"
        [backends.springServer]
            [backends.springServer.servers.server1]
                url = "http://192.168.25.88:5000"
        [backends.sre]
            [backends.sre.servers.server1]
                url = "http://192.168.25.88:9988"
    [frontends]
        [frontends.springH5]
            entryPoints = ["spring","http"]
            priority = 5 
            backend = "springH5"
            [frontends.springH5.routes.route01]
                #rule = "PathPrefixStrip:/spring"
                rule = "PathPrefix:/spring"
        [frontends.springApiServer]
            entryPoints = ["spring"]
            priority = 10
            backend = "springServer"
            [frontends.springApiServer.routes.route01]
                rule = "PathPrefixStrip:/spring/server"
        [frontends.springAdminServer]
            entryPoints = ["http"]
            backend = "springServer"
            [frontends.springAdminServer.routes.route01]
                rule = "Host:spring.chinauff.com"
        ### 服务管理面板
        [frontends.dashboard]
            entryPoints = ["http"]
            priority = 100 
            backend = "dashboard"
            [frontends.dashboard.routes.route01]
                rule = "PathPrefixStrip:/control"
        ### 运维部署服务
        [frontends.sre]
            entryPoints = ["http"]
            backend = "sre"
            [frontends.sre.routes.route01]
                rule = "PathPrefixStrip:/sre"
        [frontends.ping]
            backend = "ping"
            [frontends.ping.routes.route01]
                rule = "Host:ping.lab.com"
            [frontends.ping.routes.route02]
                rule = "ReplacePathRegex: ^/ /ping"

################################################################
# Traefik logs configuration
################################################################

# Traefik logs
# Enabled by default and log to stdout
#
# Optional
#
# Default: os.Stdout
[traefikLog]
  filePath = "/data/logs/traefik.log"

[accessLog]
  filePath = "/data/logs/access.log"


################################################################
# API 及 控制台 配置
################################################################

# 启用API以及控制台
[api]
    # 入口点名称
    entryPoint = "traefik-api"

    # 开启控制台(默认开启)
    dashboard = true

    # 默认协议
    defaultEntryPoints = ["http"]

################################################################
# Ping 配置
################################################################

# 启用 ping
[ping]
    # 入口点名称
    entryPoint = "traefik-ping"

################################################################
# Docker 后端配置
################################################################

# 启用Docker后端
[docker]

# Docker服务后端
endpoint = "unix:///var/run/docker.sock"
# 默认域名
domain = "spring.chinauff.com"
# 监控docker变化
watch = true

# 使用自定义模板(可选)
# filename = "docker.tmpl"

# 对容器默认进行暴露(默认开启)
#   如果关闭选项,则容器不包含 `traefik.enable=true` 标签,就不会被暴露
#  没有设置`traefik.enable=true`的容器就不会被发现
exposedbydefault = false

# 使用绑定端口的IP地址取代内部私有网络(默认关闭)
usebindportip = false

# 使用 Swarm Mode (默认关闭)
swarmmode = false

相关文章

  • Treafik 实践

    背景 此次项目的的特殊性:1、项目需部署在B服务器上2、请求入口为 A 服务器绑定的域名目录(weixin.dom...

  • Traefik v2.0 新人指南

    老年组折腾 Treafik 真的是脑花都烧完了。好久没写学习笔记了,都以为自己可能没脑子写了呢。[Sigh] 本文...

  • traefik v1 迁移 到treafik v2.0.0 配置

    traefik v1 与 v2 版本的配置差别很大,属于破坏是更新,要注意的是 static 配置与 dynami...

  • Day37 流程

    一个原因/没有原因些许想法定下目标翻阅资料以史为鉴制定计划模拟演练实践实践实践实践实践实践……实践实践实践实践实践...

  • 实践实践实践

    发现自己就是想的太多,做的太少。9月份考察的一个项目,不管从哪个方面来讲,都觉得这个项目是非常好,值得一生去做的事...

  • 白玉花果的一般老化特征和老光特征,跟仿品比较

    实践出真知,但不正确的实践必不出真知。正确的实践是个人的实践和社会的实践相结合,脱离社会实践的个人实践是错误的实践...

  • 暑假工作 ‖ 社会实践报告

    实践时间:2018.07.09—2018.08.25实践人:欧阳广梅实践事件:1.社会实践(爱心传递)2.工作实践...

  • 实践实践再实践

    生命是一种体验。

  • 实践实践再实践

    这是我参加11月MJ老师的超级数字力课程的最大体验。 我作为一名复训生参加此次课程,可能因为现在是熊市,大家都不太...

  • 实践实践再实践

    猫叔的分享总是言辞恳切,每一条经验都是他实践过的,我们只要认真跟着做就行。 一、手打字录视频 有这一决定之前,我问...

网友评论

    本文标题:Treafik 实践

    本文链接:https://www.haomeiwen.com/subject/gtegbqtx.html