请教一个Page和Worker一同优选的问题

问题的来源是这样的,我整了个前后端分别部署在Page和Worker上的Bitwarden兼容服务: 什么叫你的BitWarden是跑在Cloudflare上的?教你薅干大善人! 我要给前后端绑到同一个域名,用路由分流。

我从一个完全托管在CF上的域名开始:先给Page添加自定义域bitwarden.xxx.com,然后给Worker添加同域的路由 bitwarden.xxx.com/api/*bitwarden.xxx.com/identity/*,这样用户在访问时默认会访问Page,而指定路由会被Worker处理。这时的功能完全正常。

接下来我尝试了一下双域名SaaS优选,参考了这个教程: [菜鸟教程] 零基础 Cloudflare 优选教程 。即便是把要访问的域名单独接入其他DNS提供商并进行DNS分流,在访问Page时仍然会出现522错误。

于是我又关闭了SaaS,将要绑定Page的子域名以NS接入支持DNS分流的提供商,海外CNAME到page域名,国内CNAME到优选域名,并给Page添加自定义域,奇怪的一幕出现了:

  • Page可以被正常优选,但Worker路由失效任何流量都不会到达Worker,全部都被Page处理(应到达Worker的Get请求返回404,其他返回405)
  • 在Page中删除自定义域后,Worker路由又会重新生效

请问佬友们知道这种场景应该怎么优选吗?

8 个赞

不妨把page集成在worker中?目前CF推荐的就是这种方式。

1 个赞

请问佬友指的是部署一个带 Static Assets 的Worker吗?
这样访问静态资源的请求会被记入Worker的请求次数里吗?好像不扣,我去试试

1 个赞

是的,不会被记入worker请求数

1 个赞

没看懂,不过你可以试试把worker的域名换个名字:thinking:

emm…是这样的,前端会默认后端用的是同一个域名,所以两个得绑一样的,不然要重新编译前端,我懒…

如果在CF上正常配置Worker和Page,不优选的话,是可以绑成一样的,用路由分流的。
以前Worker不能配静态资产,只能在Worker中返回上传的资产(要消耗Worker请求次数)的时候喜欢这么玩。

但就像楼上的佬友所说,现在更推荐把Page作为静态资源放进Worker里,或者把Worker写成Function放Page里。

2 个赞

DNS分流就行了。默认CNAME到Page默认域名,内地分流到优选域名。

1 个赞

完了,看不懂,纯小白(

我也遇到这个问题了,解决办法是用worker,saas好像不允许这样,这么搞只会522/1000/1016错误跳;你这另外个办法把绑了pages的域名放到第三方平台cname则完全无法使用waf和trust等玩意,能加速但是直接裸奔了

saas我不知道是不是我用的是两个子域名但主域名托管在cloudflare导致的,要是有两个我估计就懂了

我用双域名SaaS也是一样出错…现在直接用worker的静态资产了。

1 个赞

请问佬友,使用worker+静态资产,怎么进行优选啊,方不方便讲一下

跟普通worker一样的啊,直接cname就行

可是我部署好了之后,绑定自定义域之后,它自动生成一个worker类型的

额,现在又可以绑自定义域了么…

我记得之前刚出自定义路由的时候,自定义域就只能绑主域名了,子域名不给绑了。

不论如何,把自定义域删了,配置自定义路由就行。

我删除了自定义域,添加了cname,目标是worker里面的 workers.dev
添加了路由,指向cname配置的子域名。
但是现在浏览器访问不了 DNS_PROBE_FINISHED_NXDOMAIN
请问是哪里配置错了吗?


这是啥AI教你这么填的 :melting_face:

自定义路由填star.xxx.com/*,然后把这个域名cname到优选域名不开小黄云就行。

另外,这个域名的其它子域名能正常解析么?


感谢佬友指导,请问现在解析大量失败,这样应该怎么优化啊

无解,只能换个好点的域名

那域名买之前,可以知道好不好解析吗?

现在Worker 升级了 比pages要强大 :distorted_face: