我面临一个非常奇怪的问题,我无法解决。基本上,我有 2 台 VPS 机器,我通过 RDP 连接它们,因为它们都是 Windows Server 机器。我对它们都有卷曲。一个运行的是 Windows Server 2016,我们称之为服务器 A。另一个运行的是 Windows Server 2022,我们称之为服务器 B。
如果我curl https://jira.mysite.com:2053/rest/api/2/serverInfo
在服务器 A 上运行,我会得到一个有效的 JSON 响应,它是
{"baseUrl":"https://jira.mysite.com:2053","version":"8.22.2","versionNumbers":[8,22,2],"deploymentType":"Server","buildNumber":822002,"buil
dDate":"2022-04-20T00:00:00.000+1000","databaseBuildNumber":822002,"scmInfo":"266c8f51e3b1a891285d611f42f1d6c4389222af","serverTitle":"MY SERVER"
}
但是,如果我curl https://jira.mysite.com:2053/rest/api/2/serverInfo
在服务器 B 上运行,我会得到 HTML
<!DOCTYPE html>
<html lang="en-US">
<head>
<title>Just a moment...</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
<meta name="robots" content="noindex,nofollow">
<meta name="viewport" content="width=device-width,initial-scale=1">
<link href="/cdn-cgi/styles/challenges.css" rel="stylesheet">
</head>
<body class="no-js">
...etc
到底是怎么回事。为什么我没有在服务器 B 上取回 JSON?这完全没有意义。
我唯一的猜测是 DNS 可能仍在传播并且 SERVER B 正在从一个旧 IP 地址中提取,但是我更新 DNS 已经 4 个小时了,所以我怀疑这就是问题所在。
任何建议,将不胜感激。谢谢。
我发现了问题。似乎 Cloudflare 在发送 JSON 之前进行了干预,因此服务器 B 将该 HTML 作为响应的原因。Cloudflare 正在签发支票,然后在支票通过后重定向。
如何修复
https://stackoverflow.com/questions/18500088/curl-load-a-site-with-cloudflare-protection https://community.cloudflare.com/t/how-to-whitelist-ips-through-cloudflare/417224