目前我们有一个 Cloudflare 帐户,为我们的网站和其他一些网络应用程序提供服务。我们使用 Cloudflare DNS 将请求代理到不同的页面/工作人员。
现在,我们的管理层提出了一个新请求,我们需要为 Rudderstack 集成一个自定义域。 他们在他们的文档中写道:您将需要访问域的 DNS 设置以及 CDN 设置。 在 Cloudflare 中,我可以将 DNS 设置更改为从 api.ourdomain.com 代理到 api.rudderlabs.com。但这不起作用,我有一个 Cloudflare 错误:无效的 SSL 证书 (526)。所有证书均有效且运行良好。 (我尝试了完整和完整(严格)选项)
Rudderstack 建议使用 Amazon CloudFront 创建 CloudFront 发行版。 也许我需要为我们公司重做整个 DNS 设置并从 AWS CloudFront 开始,因为它看起来更灵活?
是否可以使用 Cloudflare 或者我错过了什么?
您可以设置 Cloudflare Worker 来执行批量源覆盖并将请求发送到 RudderStack 数据平面。工作线程中的示例代码:
const ORIGINS = {
'abc.mydomain.com': 'xyz.dataplane.rudderstack.com',
};
function handleRequest(request) {
const url = new URL(request.url);
// Check if incoming hostname is a key in the ORIGINS object
if (url.hostname in ORIGINS) {
const target = ORIGINS[url.hostname];
url.hostname = target;
// If it is, proxy request to that third party origin
return fetch(url.toString(), request);
}
// Otherwise, process request as normal
return fetch(request);
}
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request));
});
在cloudflare工作人员的
Custom Domains
中设置您的子域,它将为您生成证书并且应该可以使用