【问题标题】:Cloudfront with custom origin and identical domain具有自定义来源和相同域的 Cloudfront
【发布时间】:2018-05-02 23:33:36
【问题描述】:

假设域为 www.example.com 的网站托管在网络托管商的 LAMP 服务器上,该网络托管商不是亚马逊。该域由 Route53 管理。

是否有可能以某种方式保留 LAMP 网络服务器上的所有设置并仍然使用 www.example.com 作为 Cloudfront 的域?喜欢:

Client -> www.example.com -> Cloudfront Edge Server -> Custom origin available over www.example.com on LAMP webserver of third party webhoster

基本上,我想将 www.example.com 用于 Cloudfront 边缘服务器和 LAMP 服务器。

最好的问候

【问题讨论】:

  • 这可能取决于具体情况。您可以让 Route53 将 www.example.com 指向 CloudFront,并让您的源服务器同时响应 origin.example.com 和 www.example.com。对 www.example.com 的正常请求将通过 CloudFront 提供。 CloudFront 将使用 origin.example.com 作为源。然后使用类似主机文件条目的东西,您仍然可以让开发团队(例如)使用 www.example.com 的主机头直接将流量发送到服务器。这符合您的要求吗?
  • 不,这不符合我的要求。理想情况下,www.example.com 指向 Cloudfront 边缘服务器。而且,Cloudfront 边缘服务器有类似 /etc/hosts 的东西,我可以在其中指定 LAMP 服务器的 A 和 AAAA 记录。

标签: amazon-cloudfront


【解决方案1】:

您不能在 CloudFront 上执行类似 /etc/hosts 的任何操作 - 它始终使用公共 DNS 来解析来源。

然而,你仍然可以做你想做的事——但你只需要了解为什么这个解决方案确实是你想要的,因为它看起来不是(因为你以 cmets 表示)。

在 Route 53 中,为源服务器的新主机名创建新 A 记录,例如 origin.example.com。 您根本没有在源服务器上的任何位置配置此值。您的源服务器仍然认为它是 www.example.com。

在 Route 53 中,创建一个别名 A 记录 www.example.com 指向 origin.example.com。

此时,您的网站完全按照您的预期和要求运行。主机名“origin.example.com”在解析路径中,但该信息对来源不可见且未知。

在 CloudFront 中,创建一个分配,将源域名设置为 origin.example.com,将分配的备用域名设置为 www.example.com。

在每个缓存行为的设置中,确保 Host 标头被列入白名单以转发到源。

将 www.example.com 的 Route 53 别名更改为指向您的 CloudFront 分配。

当请求到达 CloudFront 时,请求会保留 Host: www.example.com 标头。 CloudFront 使用 DNS 来查找 origin.example.com 的 IP 地址但是,它只使用此信息来建立到源的连接。传入的请求仍然发送到 www.example.com。如果源具有 www.example.com 的 SSL 证书,CloudFront 将接受它为有效,因为您为白名单配置了 Host 标头,并且它与证书匹配。

在此配置中,使用浏览器地址栏中分配的 dzczcexample.cloudfront.net 主机名访问 CloudFront 分配将不起作用,因为 CloudFront 会将 那个 主机名发送到源,但是一旦您指向www.example.com 的 Route 53 别名到分配的 cloudfront.net 域名,请求将被正确处理。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-02
    • 2018-03-30
    • 2017-08-29
    • 2018-06-09
    • 1970-01-01
    • 2020-08-13
    • 2012-12-22
    • 2018-02-17
    相关资源
    最近更新 更多