1

我有一个由 Cloudflare 代理的 Web 应用程序,运行在hybrid-app.example

我正在使用Cloudflare Worker Sites模式在hybrid-app.example/static-content/. 这个工人正在监听路线*hybrid-app.example/static-content*https://hybrid-app.example/static-content/hello.html我可以通过导航到并从我的静态站点中查看正确的内容来验证此工作器的配置是否正确。

我还有第二个 Cloudflare 工作者,它使用工作者路由器模式将静态站点中的选择页面代理到同一域上的虚 URL。特别是,这个工人被配置为监听路由*hybrid-app.example/hello*。在内部,它执行以下操作:

return fetch('https://hybrid-app.example/static-content/hello.html')

但是当我导航到 时https://hybrid-app.example/hello,我看到一个GET请求访问/static-content/hello.html我的源服务器。因此,当我fetch在 Cloudflare 工作程序中调用函数时,它似乎在解析请求而不检查与任何其他工作程序路由的匹配。我可以使用 Fetch API 的替代方法来强制来自一个 cloudflare 工作人员的请求,以在解析之前检查其他匹配的 CF 工作人员路由吗?

4

1 回答 1

1

这是不可能的; 对于同一区域中的请求, Cloudflare 工作人员总是绕过 Cloudflare(包括将请求路由到工作人员的步骤):

关于工作人员组成(一个工作人员调用另一个工作人员):这种请求链接在同一区域子请求上是不可能的。相反,我们总是将它们发送到原点。这个限制是为了解决一个歧义:我们如何知道子请求是“受信任的”并且应该直接发送到源,而不是“不受信任”并且应该进入前门,运行所有 Cloudflare 功能(包括工人)从头开始?(请注意,跨区域子请求不存在这种歧义:从其他区域的角度来看,此类子请求显然是不受信任的。)

于 2020-06-08T16:08:20.453 回答