使用Cloudflare与Amazon EC2和负载均衡器

18

我正在AWS上运行我的网站。

我有一个负载均衡器用于两个Web服务器。我的负载均衡器没有静态IP地址,而是有一个域名。

我希望我的流量只通过负载均衡器到达。我使用Cloudflare的DNS代替Route 53,因为Cloudflare的说明书上这样写。

我无法将负载均衡器的IP添加为“ A记录”,因为它是动态的,不能通过Cloudflare的DNS面板添加(不像Route 53)。帮帮我,我卡在这种情况下了。目前为止,Cloudflare没有提供任何解决方案。

是否有人遇到过同样的问题?

4个回答

15

上述URL需要登录,登录后显示错误消息,如“糟糕,您未被授权访问此页面”。请告知是否有其他替代方法来解决此问题。 - Kishore
@KishoreDR 嗯,显然 Cloudflare 已经调整了他们的文档,但答案在这条消息中:创建 ELB 的 A 记录的 CNAME 别名。 - Dmitry Mukhin
我可以知道这个 CNAME 到 ELB 的 A 记录 是否应该使用 Cloudflare 的代理吗? - Darryl RN
@DarrylRN 由你决定。 如果你想让Cloudflare充当CDN,就继续操作。如果你只想使用DNS,请将此选项保持灰色。 - Dmitry Mukhin
1
请注意,对于“裸”域(即:mydomain.com),此方法无法正常工作,因为域顶部的记录必须是A记录。CloudFlare提供将CNAME记录“展平”为A记录的服务,但仅在创建记录时执行此操作,并且不会在AWS更改与负载均衡器关联的IP地址时进行更新。 - Brandon

4
我这样决定:
我在Cloudflare中创建了两个CNAME记录,这两个记录指向AWS生成的负载均衡器的DNS名称。
第一个记录必须在“Name”字段中包含值“www”,并且“content”字段指向AWS负载均衡器的URL。另一方面,第二个记录指向根目录,将“Name”字段中的值“@”和“Content”指向相同的AWS负载均衡器服务器。
请参阅下面的图像以更好地理解。

enter image description here


3
从上面附加的截图中,我得到了一个提示。我错误地选择了代理状态为Proxied。我刚刚改成了DNS only。现在一切都按预期工作。 - MUHAMMAD SHAHID RAFI C P
在测试时,我有一个子域和只有一个CNAME记录,但是使用curl命令时卡住了。显然,www规则也很重要。 - sakisk
@MUHAMMADSHAHIDRAFICP 我相信如果您选择仅限DNS,您将失去Cloudflare的保护,这是不可取的。然后,您需要在AWS端实施安全措施。如果我错了,请纠正我。 - Duke

3

我建议使用CloudFlare管理您的域名DNS。 为指向该IP的子域名demo添加CNAME记录。 在CloudFlare控制台中,转到Crypto > Origin Certificates。使用RSA创建新证书,然后将其导入到us-east-1的AWS证书管理器中。对于证书链,请使用此链接。 确保在Crypto选项卡中启用了始终使用HTTPS。 几分钟后,您应该可以正常使用HTTPS连接到AWS的域名。

这是我使用SSL使子域名与AWS API端点配合工作所做的事情。


您能否详细说明一下证书链部分?附加的链接没有解释如何检索证书链。 - Jason Lim Ji Chen

1
我已经尝试使用Cname记录作为负载均衡器DNS名称的目标,但网站无法保证安全。如果您需要负载均衡器的静态IP,则可以使用Global Accelerator。它将为您提供一个静态IP。之后,在cloud flare中创建一个A记录,其中包含域名和由Global Accelerator提供的静态IP内容,并且代理状态必须是Proxied。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接