温馨提示:
本文所述内容具有依赖性,可能因软硬条件不同而与预期有所差异,故请以实际为准,仅供参考。
CloudFlare 是全球知名 CDN 解决方案和域名注册解析方案供应商,Workers 是其前不久推出的一款基于其强大的 CDN 全球云网络上的无服务器应用程序。
之前分享了《利用 CloudFlare Workers 等平台零成本运行 Google Drive、OneDrive 文件列表清单程序》,通过这种方法创建的域名的比较长(*.*.workers.dev
),不太适合分享,因此考虑使用自己的域名来访问。搜了一番,关于这一块基本上都是一笔带过,写得不清不楚,新手很难入手,故而这里做个记录供参考。
原则
只要 CloudFlare CDN 本身支持的域名,都可以作为 CloudFlare Workers 的域名,唯独需要注意的是,该域名需要托管于 CloudFlare上,即域名的 Name Service 必须是 CloudFlare。
当你使用其他教程设置自定义域名,却无法生效的原因,就是自定义域名没有托管在 CloudFlare 上,博主在这里费了老大劲儿才发现。
步骤
主要分两个步骤,一个是自定义域名添加到 CloudFlare 网络,另一个是将该域名指向 Worker 子域名进行关联。这两个步骤先后顺序没有严格要求。
自定义域名
如前面所述,必须将域名(如 vircloud.net
)托管于 CloudFlare 才行,在其他 DNS 注册商通过 CNAME 接入是不行的,会出现各种奇形怪状的错误。
域名托管没啥难度,会用 CloudFlare 都会,不再赘述,根据页面提示操作即可:
域名添加成功后,新增一笔 DNS 记录,Name
为要作为自定义的子域名(如 od.vircloud.net
就是 od
),值无所谓,关键要启用代理(Proxied
):
关联域名
创建 Workers
后,切换到域名的 Wokers
页签(注意是域名这里的,在 Workers 里是找不到关联的地方滴
),然后点 Add route
添加关联:
Route
填写上一步的子域名
+ /*
(如: od.vircloud.net/*
),Worker
选择需要自定义域名访问的 Worker
,注意是选择
,所以需要先创建 Worker 再来关联,表示通过这个自定义域名来访问 Worker
服务:
完成后就可以通过自定义的域名(如 https://od.vircloud.net
)访问 Worker
服务了。
总结
总结一下,两个关键点:
- 域名必须托管于 CloudFlare;
- Worker 创建后需添加路由关联;
Windows 10Chrome 70.0.3538.25来自 四川 的大神
为何cname会失败呢。。Error 1016 Origin DNS error
按道理来说cname应该是支持的啊
试过了,不可以的,只能是托管的
Windows 10Chrome 75.0.3770.100来自 广东 的大神
为什么在CloudFlare里DNS接入了,移动线路还是1016错误呢,别的线路都可以
不是 DNS 接入就完事儿了,还要在 Workers 那里绑定子域名,在 DNS 那里添加这条子域名解析
Windows 10Chrome 75.0.3770.100来自 广东 的大神
奇了怪了,我都完成了,现在只有联通和电信能访问,移动访问就是1016找不到原站DNS。移动直接访问xxx.worker.dev也是1016
ping 一下看看,移动网络向来存在莫名其妙的问题
Windows 10Chrome 75.0.3770.100来自 广东 的大神
Ping没问题,我试了全国几个地区移动都没路由出去全是空地址(直接测的xx.workers.dev
中奖了?喜获墙中墙?
Mac OS X 10_15_6Safari 605.1.15来自 浙江 的大神
为什么我这样弄完变成了522?
源站问题,参考官方 wiki:Cloudflare-5XX-错误故障排除
[...]因为电信宽带无法直接连接workers,在无法直连的情况下,相当于没有CDN加速,也就是没有任何作用 解决办法:绑定自有域名到Cloudflare Workers 参考文章 1.添加自有域名2.修改DNS3.关联域名并选择workers4.添加路由 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 Previous Post使用Node-Red配合Homeassistant实现海尔设[...]