首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让traefik在我的云架构上工作?

如何让traefik在我的云架构上工作?
EN

Stack Overflow用户
提问于 2018-09-06 03:22:40
回答 1查看 1.5K关注 0票数 0

好吧,我花了一天的时间在我的EC2上设置了Traefik和Docker,但似乎并不像文档中描述的那样工作。我可以运行Whoami示例,但这并不能真正说明我要找的是什么?

对于我的示例,我有三个AWS API网关端点,我需要将它们指向我的EC2 IP地址,该地址由我的Traefik前端设置路由,然后使用一些后端?我仍然不确定该使用哪种后端。

我似乎找不到一个好的YAML示例来清楚地说明符合我的目的和需求的东西。

有谁能给我指个方向吗?有没有好的Docker YAML示例,下面为我的示例设置的配置?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-06 06:23:15

我将this文章作为使用traefik配置docker安装的指南。

编辑:在此之前,创建一个名为proxy的docker网络。

$ docker network create proxy

代码语言:javascript
复制
version: '3'

networks:
  proxy:
    external: true
  internal:
    external: false

services:
  reverse-proxy:
    image: traefik:latest # The official Traefik docker image
    command: --api --docker --acme.email="your-email" # Enables the web UI and tells Træfik to listen to docker
    restart: always
    labels:
      - traefik.frontend.rule=Host:traefik.your-server.net
      - traefik.port=8080
    networks:
      - proxy
    ports:
      - "80:80"     # The HTTP port
      - "8080:8080" # The Web UI (enabled by --api)
      - "443:443"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - $PWD/traefik.toml:/etc/traefik/traefik.toml
      - $PWD/acme.json:/acme.json

  db:
    image: mariadb:10.3
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: r00tPassw0rd
    volumes:
      - vol-db:/var/lib/mysql
    networks:
      - internal # since you do not need to expose this via traefik, so just set it to internal network
    labels:
      - traefik.enable=false

  api-1:
    image: your-api-image
    restart: always
    networks:
      - internal
      - proxy
    labels:
      - "traefik.docker.network=proxy"
      - "traefik.enable=true"
      - "traefik.frontend.rule=Host:api1.yourdomain.com"
      - "traefik.port=80"
      - "traefik.protocol=http"

  api-2:
    image: your-api-2-image
    restart: always
    networks:
      - internal
      - proxy
    labels:
      - "traefik.docker.network=proxy"
      - "traefik.enable=true"
      - "traefik.frontend.rule=Host:api2.yourdomain.com"
      - "traefik.port=80"
      - "traefik.protocol=http"

注意:如果您还想启用SSL,请使用此选项。请注意,这可能在本地服务器上不起作用,因为letsencrypt无法完成SSL设置的挑战。创建一个空白文件acme.json,并将其权限设置为0600

touch acme.json chmod 0600 acme.json

在设置好所有东西之后,

docker-compose config #这是可选的。

然后,

docker-compose up

我已经发布了我的traefik.toml here

我希望这能帮到你。如果你遇到任何问题,请告诉我。

致以敬意,

库沙尔。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52192109

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档