1

如何在 cloudflare worker 中设置另一个主机头?例如,我为我网站的 www 记录设置了 1.2.3.4 ip 默认情况下,www 请求使用标头 www.ex.com 发送,但我想使用 new.ex.com 标头发送 www 请求

4

2 回答 2

3

您需要配置一个 DNS 记录new.ex.com,使其指向相同的 IP 地址。然后,您可以在 URL 中fetch()发出请求。new.ex.com

如果您无法new.ex.com指出正确的 IP,另一种选择是fetch()使用选项发出请求,resolveOverride以指定要使用的不同主机名的 IP 地址:

fetch("https://new.ex.com", {cf: {resolveOverride: "www.ex.com"}});

请注意,这仅在涉及的两个主机名都在您的区域下时才有效。关于文档resolveOverride可以在这里找到。

您不能直接设置Host标头,因为这样做可能会在向也使用 Cloudflare 的第三方服务器发出请求时绕过安全设置。

于 2020-01-01T03:49:04.250 回答
1
// Parse the URL.
let url = new URL(request.url)

// Change the hostname.
url.hostname = "check-server.example.com"

// Construct a new request
request = new Request(url, request)

请注意,这将影响源看到的 Host 标头(它将是 check-server.example.com)。有时人们希望 Host 标头保持不变。

// Tell Cloudflare to connect to `check-server.example.com`
// instead of the hostname specified in the URL.

request = new Request(request,
    {cf: {resolveOverride: "check-server.example.com"}})
于 2020-05-15T21:10:24.217 回答