标签: traefik

traefik:使用docker-compose时如何使用基本身份验证?

我正在尝试使用带有docker compose的traefik.

根据我在他们网站上看到的帖子,你可以使用这样的东西:

mytest-steph: image: myimage ports: - "45001:45001" labels: - "traefik.backend=test_steph" - "traefik.frontend.rule=Host:test.mydomain.com;PathPrefix:/myprefix" - "traefik.backend.port=8080" - "traefik.frontend.auth.basic=test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/"

但是当我启动docker-compose时,我得到: WARNING: The apr1 variable is not set. Defaulting to a blank string. WARNING: The H6uskkkW variable is not set. Defaulting to a blank string. WARNING: The IgXLP6ewTrSuBkTrqE8wj variable is not set. Defaulting to a blank string.

有没有人实现使用这样的基本身份验证?

traefik

2
推荐指数
2
解决办法
3191
查看次数

Traefik 与 Docker 网络

我真的不知道如何在 docker 网络中使用 traefik。

我尝试运行“wekan”看板。如果我将端口绑定到主机,它就可以完美运行,因此实际上是通过 traefik 解决它。这是我的 docker-config:

version: '2'

services:

 wekandb:
   image: mongo:3.2.14
   container_name: wekan-db
   command: mongod --smallfiles --oplogSize 128
   networks:
     - wekan-tier
   expose:
     - 27017
   volumes:
     - wekan-db:/data/db
     - wekan-db-dump:/dump

 wekan:
   image: wekanteam/wekan:latest
   container_name: wekan-app
   networks:
     - wekan-tier
#    ports:
#      - 8081:80
   environment:
     - MONGO_URL=mongodb://wekandb:27017/wekan
     - ROOT_URL=https://wekan.domain.com
   depends_on:
     - wekandb
   labels:
     - "traefik.port=80"
     - "traefik.backend=wekan"
     - "traefik.frontend.rule=Host:wekan.domain.com"
     - "traefik.docker.network=wekan_wekan-tier"
volumes:
 wekan-db:
   driver: local
 wekan-db-dump:
   driver: local

networks:
 wekan-tier:
   driver: bridge
Run Code Online (Sandbox Code Playgroud)

我似乎找不到访问该死的东西的方法......您的回答将不胜感激,它不仅可以让我运行 Wekan,还可以更新我使用链接的旧服务:链接而不是 Docker网络 - 现在不推荐使用链接。

docker traefik

2
推荐指数
1
解决办法
8132
查看次数

使用Traws在Aws Loadbalancer后面进行HTTPS重定向

我正在尝试将所有传入的Traefik从http重定向到https,用于从具有自定义端口的docker容器中提供服务的Web应用程序.

如果我构建这个docker compose文件,并缩放应用程序,一切都按预期工作.我能够请求应用程序的http和https,但我尝试完成只有https获取服务,http被重定向到https.

由于我使用的是Docker-Compose文件,因此我没有Traefik.toml,并试图在没有它的情况下完成此任务.

Docker撰写:

traefik:
  image: traefik:latest
  command:
   - "--api"
   - "--docker"
   - "--docker.domain=example.com"
   - "--logLevel=DEBUG"
   - "--docker.watch"
  labels:
    - "traefik.enable=true"
  ports:
    - "80:80"
    - "8080:8080"
    - "443:443"
  volumes:
    - /var/run/docker.sock:/var/run/docker.sock
    - /dev/null:/traefik.toml

application:
  image: application
  command: web
  tty: false
  stdin_open: true
  restart: always
  expose:
    - "8081"
  labels:
    - "traefik.backend=application"
    - "traefik.frontend.rule=HostRegexp:{subdomain:[a-z]+}.example.com"
    - "traefik.frontend.priority=1"
    - "traefik.enable=true"
  volumes:
    - /var/run/docker.sock:/var/run/docker.sock
Run Code Online (Sandbox Code Playgroud)

我尝试了应用程序容器的不同变体,例如:

- "traefik.frontend.entryPoints=http,https"
- "traefik.frontend.redirect.entryPoint=https"
- "traefik.frontend.headers.SSLRedirect=true"
Run Code Online (Sandbox Code Playgroud)

但我可以完成的最大化是使用SSLRedirect标签进行多次重定向响应,并且没有从traefik获得以下内容,并且http或https请求都没有正确转发.

 level=error msg="Recovered from panic in http handler: runtime error: invalid memory address …
Run Code Online (Sandbox Code Playgroud)

http-redirect docker docker-compose elastic-load-balancer traefik

2
推荐指数
1
解决办法
2096
查看次数

在 Traefik 中使用现有的 LetsEncrypt 证书

是否可以在 Traefik 中使用现有的 LetsEncrypt 证书(.pem 格式)?

我已将 Traefik/Docker 设置为生成 acme.json - 我可以为一组域导入现有证书吗?

lets-encrypt traefik

2
推荐指数
1
解决办法
6479
查看次数

无法通过docker-compose.yml中的"标签"设置Traefik

Traefik完全忽略了"标签"配置.

按照Traefik的主要文档页面,我们可以简单地做到:

#docker-compose.yml

version: '3'

services:

  traefik:
    image: traefik # The official Traefik docker image
    command: --api --docker # Enables the web UI and tells Træfik to listen to docker
    ports:
      - "80:80"     # The HTTP port
      - "8080:8080" # The Web UI (enabled by --api)
    volumes:
      - ./docker.sock:/var/run/docker.sock # So that Traefik can listen to the Docker events

  whoami:
      image: emilevauge/whoami # A container that exposes an API to show its IP address
      labels:
        - "traefik.frontend.rule=Host:whoami.docker.localhost"
Run Code Online (Sandbox Code Playgroud)

然后,运行docker-compose就足够了(没有traefik.toml文件): …

reverse-proxy docker docker-compose traefik

2
推荐指数
1
解决办法
2463
查看次数

traefik.domain 和 traefik.frontend.rule=Host 有什么区别

traefik.frontend.rule=Host:example.com将对 example.com 的请求重定向到该后端。那么 的用法是什么呢traefik.domain

traefik

2
推荐指数
1
解决办法
1245
查看次数

对 Ingress 服务不可用 503 进行故障排除

对我的 kubernetes 节点发出的每个请求都会导致Ingress Service Unavailable(503) 响应。

我应该采取哪些不同的步骤来解决此问题?

raspberry-pi kubernetes traefik kubernetes-ingress k3s

2
推荐指数
1
解决办法
551
查看次数

使用 Traefik 通过正则表达式将 URL 重定向到另一个 URL

我想通过 traefik 将一个 URL 重定向到另一个 URL。

我正在使用 docker 进行此配置,下面是我的 docker-compose.yml 文件

version: '3'

services:
  reverse-proxy:
    # The official v2.0 Traefik docker image
    image: containous/whoami
    container_name: "whoami_cont"
    # Enables the web UI and tells Traefik to listen to docker
    ports:
      # The HTTP port
      - 80:80
      # The Web UI (enabled by --api.insecure=true)
      - 8080:8080
    labels:
      - traefik.http.middlewares.test-replacepathregex.replacepathregex.regex=^(https?|ftp|file)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]
      - traefik.http.middlewares.test-replacepathregex.replacepathregex.replacement=http://localhost:8081/4
Run Code Online (Sandbox Code Playgroud)

然后我成功运行 docker-compose 命令。然后我将点击匹配正则表达式模式的任何 URL,但 URL 没有根据配置重定向到另一个 URL - http://localhost:8081/4。我正在使用 traefik 2.0 版

如果缺少任何配置,请告诉我。

docker docker-compose traefik

2
推荐指数
1
解决办法
9336
查看次数

如何使用traefik将http重定向到https?

我在使用 Traefik 将 http 重定向到 https 流量时遇到了一个小问题。到目前为止,我的带有 acme 的 https 路由器工作正常,但我有两个问题需要解决。

  • 我必须手动指定https://domain通过 https 路由。否则它会尝试通过 http 路由并获得 404。
  • 即使我手动输入https://domain它在大多数情况下都有效,但在某些路径中,它会无缘无故地尝试通过 http 路由,并获得 404。

无论 https 是否输入到地址栏中,如何确保路由始终对路由中的每个路径使用 https?

入口点是 namehttphttps. 我的部分工作设置:

- "traefik.enable=true"
- traefik.port=8000
- traefik.backend=myapp
- traefik.http.routers.myapp.rule=Host(`sub.mydomain.com`)
- "traefik.http.routers.myapp.entrypoints=https"
- "traefik.http.routers.myapp.tls.certresolver=myresolver"
# redir http to https
- "traefik.http.routers.myapp-secure.rule=Host(`sub.mydomain.com`) && PathPrefix({p:.+})"
- "traefik.http.routers.myapp-secure.entrypoints=https"
- "traefik.http.middlewares.myapp-secure.redirectscheme.scheme=https"
- "traefik.http.routers.myapp.middlewares=myapp-secure"
- "traefik.http.routers.myapp-secure.tls=true"
Run Code Online (Sandbox Code Playgroud)

docker docker-compose traefik

2
推荐指数
2
解决办法
3283
查看次数

使用 Traefik 2 作为 MariaDB (Docker) 的 TCP 代理

我正在尝试使用 Traefik 作为 MariaDB 的反向代理,以便我可以从我的客户端进行连接。

目前,Traefik 在多个 WordPress 容器的 HTTP 和 HTTPS 上运行良好,但我无法为 MariaDB 配置它。

这是当前的配置:

Traefik 撰写文件:

version: '3.5'

 networks:
  traefik:
    name: traefik


services:
  traefik:
    image: traefik:latest
    restart: always
    container_name: traefik
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./traefik.toml:/traefik.toml:ro
      - ./acme.json:/acme.json
    ports:
      - 80:80
      - 443:443
      - 3306:3306
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.traefik.rule=Host(`traefik.local`)"
      - "traefik.http.routers.traefik.entrypoints=websecure"
      - "traefik.http.routers.traefik.service=api@internal"
      - "traefik.http.routers.traefik.middlewares=auth"
      - "traefik.http.middlewares.auth.basicauth.users=username:$$apr1$$j994eiLb$$KmPfiii4e9VkZwTPW2/RF1"
    networks:
      - traefik
Run Code Online (Sandbox Code Playgroud)

Traefik 配置文件(traefik.toml):

# Network traffic will be entering our Docker network on the usual web ports …
Run Code Online (Sandbox Code Playgroud)

proxy tcp mariadb docker traefik

2
推荐指数
1
解决办法
5737
查看次数