【问题标题】:Default or fallback container (docker) in traefiktraefik 中的默认或后备容器(docker)
【发布时间】:2018-07-17 07:04:59
【问题描述】:

我正在使用 traefik 和 docker 在我的服务器上运行多个服务。如果(子)域没有匹配的容器,我如何指定默认或后备容器?例如,我将 example.com 用于我的网站,将 cloud.example.com 用于我的 nextcloud。但是当有人使用 www.example.com 或 wiki.example(或其他可能的子域之一)时,它应该重定向到我的网站并且不显示 404 错误页面。

每个容器都有以下标签:

  - traefik.port=<port>
  - traefik.frontend.rule=Host:<sub-1>.example.com,<sub-2>.example.com
  - traefik.frontend.entryPoints=http,https

traefik 配置在这里(我使用的是traefik:1.6-alpine 图像):

# General
logLevel = "INFO"

# EntryPoints
[entryPoints]
  [entryPoints.http]
    address = ":80"

    [entryPoints.http.redirect]
      entryPoint = "https"

  [entryPoints.https]
    address = ":443"

    [entryPoints.https.tls]

# Let's Encrypt
[acme]
  entryPoint = "https"
  email = "info@example.com"
  storage = "/etc/traefik/acme/acme.json"
  onHostRule = true
  [acme.httpChallenge]
    entryPoint = "http"
  [[acme.domains]]
    main = "example.com"

# Docker
[docker]
  domain = "localhost"
  watch = true

【问题讨论】:

    标签: docker docker-compose traefik


    【解决方案1】:

    如果您希望 所有 流量但只有几个子域进入您的 Web 容器:

    替换:traefik.frontend.rule=Host:&lt;sub-1&gt;.example.com,&lt;sub-2&gt;.example.com

    使用:traefik.frontend.rule=HostRegexp:{subdomain:[a-z0-9]+}.example.com,并添加优先级标签 10:traefik.frontend.priority=10

    然后在返回到您的网站之前为您想要匹配的任何其他服务设置更高的优先级。

    【讨论】:

    • 非常感谢。它工作正常。你知道如何为这个新的子域获取证书吗?
    • 您可以将更多域添加到您的acme.domains 列表中,也可以查看请求通配符证书。请注意,请求通配符证书需要 DNS 质询。
    猜你喜欢
    • 2017-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-13
    • 1970-01-01
    • 1970-01-01
    • 2016-08-21
    • 2023-04-06
    相关资源
    最近更新 更多