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

Dav*_*ari 0 amazon-cloudfront

假设一个域名为www.example.com的网站托管在webhoster的LAMP服务器上,该服务器不是Amazon。该域由Route53管理。

是否可以某种方式将所有设置保留在LAMP Web服务器上,并且仍将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
Run Code Online (Sandbox Code Playgroud)

基本上,我想同时将www.example.com用于Cloudfront Edge Server和LAMP服务器。

最好的祝福

Mic*_*bot 5

您无法/etc/hosts在CloudFront上做任何事情-它始终使用公共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标头列入白名单以转发到源。

更改www.example.com的Route 53别名以指向您的CloudFront发行版。

当请求到达CloudFront时,请求保留Host: www.example.com标题。CloudFront使用DNS查找其IP地址,origin.example.com 它仅使用此信息建立与源的连接。传入请求仍发送至www.example.com。如果原始服务器具有针对www.example.com的SSL证书,则CloudFront会将其视为有效,因为您已将Host标头配置为白名单,并且与该证书匹配。

在这种配置中,访问在浏览器的地址栏将无法正常工作与分配dzczcexample.cloudfront.net主机名CloudFront的分布,因为CloudFront的将发送的是主机名到原点,但一旦你点的路线53别名www.example.com到分配的cloudfront.net域名,请求将被正确处理。