网络与域名
你的应用正在运行,但目前还没有人能访问到它。本教程将帮你配置真实域名、通过 Let’s Encrypt 实现自动 TLS,以及部署能自动发现容器的 Traefik 代理。你需要在 Cloudflare 上托管一个域名和一个 API 令牌。
观看教程
四个步骤
- 获取 Cloudflare API 令牌。
- 在
rdc上配置基础设施。 - 将配置推送到服务器。
- 部署代理。
第一步:Cloudflare API 令牌
在 Cloudflare 控制台,进入 My Profile → API Tokens,创建一个具有 Zone DNS Edit 权限的令牌。复制令牌值,它只会显示一次。
第二步:配置基础设施
告诉 rdc 你的公网 IP、根域名、证书邮箱和令牌。--cert-email 和 --cf-dns-token 在你所有机器间共享,因此只需设置一次。
rdc config infra set -m <machine-name> --public-ipv4 <server-ip> --base-domain <base-domain> --cert-email <cert-email> --cf-dns-token <cf-dns-token> 从命令行设置公网 IP、基础域名、证书邮箱和 Cloudflare API token。证书邮箱和 token 在所有机器间共享,因此只需设置一次。
rdc config infra show -m <machine-name> 确认基础设施配置已保存。公网 IP、基础域名和证书邮箱应全部可见。
第三步:推送到服务器
rdc config infra push -m <machine-name> 将配置推送到服务器。这将自动在 Cloudflare 上创建 DNS 记录,并准备好代理配置。
这会自动在 Cloudflare 上创建 DNS 记录,并在服务器上准备代理配置。
第四步:部署代理
代理本身还没有运行。使用内置的 proxy 模板,在一个名为 infra 的小仓库中部署它:
rdc repo create --name infra -m <machine-name> --size 1G 创建一个名为 infra 的小型 repo。这是代理的存放位置,与应用 repo 隔离。
rdc repo template apply --name single-service -m <machine-name> --repository infra 让我们应用内置的 proxy 模板。它包含 Traefik 以及 Let's Encrypt 和 Cloudflare DNS-01 验证的完整配置,开箱即用。
rdc repo up --name infra -m <machine-name> 启动代理。Traefik 会自动发现你的 container,TLS 证书由 Let's Encrypt 自动颁发。你的应用现在可以通过 HTTPS 在互联网上访问。
完成。Traefik 现在正在运行。你的应用可以通过以下地址访问:
myapp.my-app.my-server.yourdomain.com
Traefik 每 5 秒自动发现你的容器,TLS 证书由 Let’s Encrypt 自动颁发。无需手动配置代理。
下一篇:生产模式。