微服务开发之反向代理traefik

traefik是微服务架构里常用的一种反向代理.相对于nginx, traefik最大的区别是支持动态配置路由的.也就是每当你的微服务经历新启动、移除、停止或更新时都会被感知,并且可以自动更新对应的配置文件.
以下简单说明下通过docker-compose来启动traefik的流程.

  • 首先创建一个专有网络(让traefik和所有需要反向代理的微服务在同一个网络中)
docker network create gwnetwork
  • 然后定义一个traefik.toml文件
defaultEntryPoints = ["http"]
insecureSkipVerify = true
[entryPoints]
  [entryPoints.http]
  address = ":80"
  • 然后定义一个docker-compose.yml文件(假设和上面toml文件在相同目录)
version: '2'

services:
  proxy:
    image: traefik
    command: --api --docker --docker.domain=docker.localhost --logLevel=DEBUG
    networks:
      - apinetwork
    ports:
      - "80:80"
      - "8080:8080"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./traefik.toml:/etc/traefik/traefik.toml

networks:
  apinetwork:
    external:
      name: gwnetwork
  • docker-compose启动traefik
sudo docker-compose up -d

这时可以通过http://localhost:8080上打开traefik的ui管理页面.之后启动微服务容器的时候,加上对应的label即可,比如

    labels:
      - "traefik.backend=test"
      - "traefik.frontend.rule=Host:test.a.com"
      - "traefik.docker.port=80"
发布了372 篇原创文章 · 获赞 1031 · 访问量 242万+

猜你喜欢

转载自blog.csdn.net/moxiaomomo/article/details/89881679