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

时间:2019-09-03 08:38:26

标签: cloudflare traefik

我将traefik用作我的自托管服务的反向代理,它的工作原理很吸引人。每次添加新服务时,traefik都会对其进行检测并相应地路由查询。每个服务都路由到我的主域的子域。

我唯一要做的手动步骤是在DNS中为我的新子域添加一条新记录。而且我想使其自动化。

我知道Cloudflare有一个managing DNS records的API,我可以在那里进行开发。但是我不知道是否可以挂接一个脚本,该脚本将在例如traefik检测到新的子域时触发...

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

2 个答案:

答案 0 :(得分:0)

upload.express

负责自动DNS

通配符DNS记录

除特殊情况的认可外,几乎所有DNS供应商都支持通配符DNS记录。通过创建一个名为“ * .example.com”的“ A”部分,该部分专注于服务器的IP地址,任何源自您的任何子域的请求都将转移到您服务器的IP。这样一来,您就无需在板级微服务上执行自己的空间。

您还可以使用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

所述

答案 1 :(得分:0)

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

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

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

因此,钩子不在traefik中,而是直接在Docker中。