我怎样才能让 CloudFlare 工作人员响应来自用户的传入 HTTP 请求?

How can I have a CloudFlare worker respond to incoming HTTP requests from users?

我在 JavaScript 中写了一个 CloudFlare worker,匹配 URL:

example.com/blog/*

其中 example.com 是实际域。

但是我在 CloudFlare 上也有一个 CNAME 记录 example.com(在 CloudFlare 中)指向 example.com 网站实际主机。

我的理解(并且测试证实了这一点)是,在解析 DNS 之后,用户将他们的 HTTP 请求直接发送到站点主机 - 因此 CloudFlare worker 永远不会被调用。

我调查了 CloudFlare workers docs 但他们似乎没有涵盖这一点。

如何让 CloudFlare worker 响应来自用户的传入 HTTP 请求?

在您的 DNS 设置中,您需要确保主机名设置为“代理”模式。它应该是这样的:

在此模式下,您的 DNS 将解析为 Cloudflare 的 IP。请求将首先发送到 Cloudflare。如果他们与您的工作人员路径相匹配,他们将转到工作人员,否则他们将继续到 CNAME 目标。