使用EdgeOne加速CloudFlareWorkers

问题复现

使用CloudFlareWorkers部署的图床系统,想使用EdgeOne加速Workers,但直接使用EdgeOne加速Workers提供的默认域名会出现522报错。我一开始以为和Vercle一样是回源HOST的问题,但研究发现实际上不是。

CFWorkers是会检测域名的,如果域名没有托管到CF就会直接522报错。

解决方案

我发现可以使用一个托管在CF的域名作为中转域名,绕开CFWorkers的域名检测,实现使用EO加速。

  1. 给托管在CF上的域名添加一个解析记录作为中转域名,值随便填写,但是一定要开启小云盾。
  2. 添加 Workers 路由用中转域名绑定要加速的 Workers,注意是添加路由,不是在Workers里面直接绑定域名,一定要使用路由!!!
  3. 使用EdgeOne加速中转域名,注意回源方式HTTPS,回源地址和回源HOST要填写中转域名。

其他解决方案,我在网上查的好像可以使用自定义主机名功能实现,但是我试了半天也没成功,感兴趣的可以研究一下,现在的方案就是在尝试的过程中发现的。

总结

CFWorkers会检测域名,但我们可以使用中转域名的方式绕过。

必须要有一个托管在CF的域名,我用的eu.org 免费域名。

至于会不会出现双层cdn的问题,我感觉不会,因为请求打到CF的节点就返回Workers的内容了。

在EO配置好缓存可以减少CF的请求次数。