Cloudflare Workers绑定第三方域名提供商
Cloudflare Workers可以绑定第三方域名,通过Cloudflare For SaaS服务实现。用户需设置DNS记录和Fallback Origin,创建流量管理Worker,并配置路由。新客户接入时需重复添加自定义主机名和DNS记录,使用KV管理域名和Worker绑定以简化流程。
默认自定义域名只可以绑定由自己的Cloudflare账号管理的域名,其实由方法可以绑定第三方域名提供商的域名,Cloudflare有个服务叫做Cloudflare For Saas就是专门解决这个情况的。
它的免费额度是可以绑定100个Custom Host Name,然后每超一个就加$0.1
但是虽然说是免费的,还是要绑定付款方式才可以白嫖,和R2一样。
使用场景
接下来假设这么一个场景:
你有一个域名是
xxx.com你给客户做了一个网站部署到了
client-A-worker上客户有自己的域名,不能接受修改NameServer,是
client-a.com你想要让
client-a.com的流量指向client-A-worker
示意图

步骤
设置100:: DNS Record
先要设置所有流量的入口
在xxx.com的DNS Record里添加一条新的AAAA记录
类型 (Type):
AAAA名称 (Name):
platform(这个名字可以自定,fallback,proxy都行,platform很清晰)IPv6 地址 (Address):
100::(这是一个“黑洞”保留地址,流量不会真的去这里)代理 (Proxy): 必须开启 (显示为橙色云)
设置 Fallback Origin
在
xxx.com域中,进入SSL/TLS->自定义主机名 (Custom Hostnames)。在页面上方找到 Fallback Origin (回退源) 卡片。
在输入框中填入你上一步创建的地址:
platform.xxx.com点击 “Add” (添加)。
稍等片刻,
Fallback Origin status(回退源状态) 会变为 Active (绿色)。
新建一个worker用来管理流量导向
创建一个新的 Worker, 我们称之为
platform-router,这里使用Hono来配置配置
wrangler.jsonc(服务绑定):JSON运行
cf-typegen生成类型编写
src/index.ts(Hono 路由逻辑):TSX部署该worker
配置 Worker Routes
把所有的流量,都交给 platform-router 这个路由来处理
在
xxx.com域中,进入 Workers Routes 页面。点击
Add route(添加路由)。路由 (Route):
*/*服务 (Service):
platform-router点击
Save注意:如果你还有其它worker,需要指定添加精确的route来把流量导向正确的worker
接入客户域名 client-a.com
每次有新客户时都需要重复的步骤
(你的操作) 在
xxx.com的SSL/TLS->自定义主机名页面:点击 “Add Custom Hostname”。
输入
client-a.com。(最佳实践) 将
Certificate validation method(证书验证方法) 改为HTTP Validation。这能让客户少配一条TXT记录。点击 “Add”。
(你的操作) 复制 DNS 记录,发给客户。
点击刚添加的、处于
Pending状态的client-a.com。你现在会看到两条需要客户添加的 DNS 记录。
你把这两条记录发给你的客户。
(客户的操作) 客户登录 Namecheap (或他的服务商):
记录 1 (最重要 - 流量 CNAME):
类型:
CNAME主机 (Host):
@(如果他要绑 Apex 域名) 或www(如果他绑子域名www.client-a.com)值 (Value):
platform.xxx.com(对,就是 CNAME 到你的“总入口”)
记录 2 (授权 TXT):
类型:
TXT主机 (Host):
_cf-custom-hostname(如果绑 Apex) 或_cf-custom-hostname.www(如果绑子域名)值 (Value):
[Cloudflare 提供的那一长串 UUID 字符串]
优化
使用KV来管理新添加的域名和Worker绑定,以后只需要去KV里手动添加新的域名,然后再Worker Dashboard里添加新的Service Binding,不用修改代码即可实现更新
修改Wrangler配置
别忘了cf-typegen生成类型
修改Worker代码
接入新客户(client-b.com)的标准流程
(部署 App) 部署你的新客户应用
client-b-app(添加绑定) 进入
platform-router->Settings->Bindings:类型:
Service binding变量名 (Binding Name):
CLIENT_B_SERVICE服务 (Service):
client-b-app点击
Save and deploy(这会触发一次配置更新)。
(添加路由) 进入
KV->HOST_TO_SERVICE_MAP:Key:
client-b.comValue:
CLIENT_B_SERVICE(必须和上一步的变量名完全一样)
(添加SaaS域名) 进入
SSL/TLS->自定义主机名:点击
Add Custom Hostname,输入client-b.com。(最佳实践) 将
Certificate validation method改为HTTP Validation。
(发送DNS) 把 Cloudflare 提供的两条 DNS 记录发给客户:
CNAME 记录:
Host:
client-b.com(或@)Value:
platform.ng-technology.org(你的“锚点”)
TXT 记录:
Host:
_cf-custom-hostname.client-b.comValue:
[Cloudflare 提供的那串 UUID]