具有自定义源和相同域的Cloudfront

时间:2018-05-02 10:39:00

标签: amazon-cloudfront

我们假设一个域名为www.example.com的网站托管在webhoster的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 Edge Server和LAMP服务器。

祝你好运

1 个答案:

答案 0 :(得分:3)

您无法在CloudFront上执行/etc/hosts之类的任何操作 - 它始终使用公共DNS来解析原点。

然而,你仍然可以做你想做的事情 - 但你只需要理解为什么这个解决方案确实是你想要的,因为它看起来不像你一样在评论中表示。

在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标题列入白名单以转发到原点。

将Route 53的www.example.com别名更改为指向您的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域名,请求将被正确处理。