Traefik:自动将子域添加到 cloudflare DNS

Traefik : Auto-add subdomains to cloudflare DNS

我使用 traefik 作为我的自托管服务的反向代理,它非常有用。每次我添加新服务时,traefik 都会检测到它并相应地路由查询。每个服务都路由到我的主域的子域。

我仍然需要做的唯一手动步骤是在 DNS 中为我​​的新子域添加一条新记录。我想将其自动化。

我知道 Cloudflare 有一个 API 对应 managing DNS records,我可以从那里算出来。但是我不知道我是否可以挂钩一个脚本,当 traefik 检测到一个新的子域时会触发该脚本...

关于我可以在 traefik 端进行调查以检测添加新子域的事件的任何指示?

自动 DNS 由 upload.express

负责

通配符 DNS 记录

除了特殊案例背书,几乎所有 DNS 供应商都支持通配符 DNS 记录。通过制作一个名为“*.example.com”的 "A" 部分,该部分专注于您服务器的 IP 地址,来自您的任何子域的任何请求都会转移到您服务器的 IP。通过这样做,您就无需执行自己的 space 董事会微服务。

您也可以使用 Traefik 文档中解释的优先级。

[frontends]
[frontends.frontend1]
backend = "backend1"
priority = 20
passHostHeader = true
[frontends.frontend1.routes.test_1]
rule = "PathPrefix:/to"
[frontends.frontend2]
backend = "backend2"
passHostHeader = true
[frontends.frontend2.routes.test_1]
rule = "PathPrefix:/toto"

我们还可以使用 Docker 创建一个多 HTPS 子域,如 here

所述

最终我找到了满足我需求的解决方案:

https://github.com/tiredofit/docker-traefik-cloudflare-companion

它在内部侦听 docker 事件,然后重新检查所有 运行 容器以检测某些标签是否已更改。

所以钩子不在 traefik 中,而是直接在 Docker.