Amazon Cloudfront - 将 CDN 域名传递到源服务器

Posted

技术标签:

【中文标题】Amazon Cloudfront - 将 CDN 域名传递到源服务器【英文标题】:Amazon Cloudfront - Pass CDN domain name to origin server 【发布时间】:2012-10-15 11:36:33 【问题描述】:

我想知道 Amazon Cloudfront 是否可以将请求来自的 CDN 域名传递给源服务器。让我解释一下。

我有一个外部 LAMP 服务器,与源域相关联(例如:origin.mydomain.com) 我已成功设置 Cloudfront,将 origin.mydomain.com 设置为源服务器 最后,我将 2 个不同的 (CDN) 域指向 Cloudfront(例如:www.firstdomain.com 和 www.seconddomain.com)

现在,所有这些设置都运行良好。

但是我缺少 1 条信息:当源服务器 (origin.mydomain.com) 收到请求时,我还没有找到一种方法来知道请求最初来自 www.firstdomain.com 还是 www .seconddomain.com; cloudfront 将有关请求的所有信息发送到源服务器,但原始 CDN 域除外 - 或者如果是,我不知道如何/从哪里获取它。

所以,继续,我有这个:

DNS 域 -> Cloudfront -> 源域 -> LAMP 服务器

问题是:LAMP如何获取请求最初来自的DNS域名?

我是否错过了任何云端设置,或者我可以使用一些技巧来获取该信息?

注意:我知道我可以创建多个指向同一个源服务器的属性,但这不是这个项目的可行解决方案。

【问题讨论】:

【参考方案1】:

您必须使用 Cloudfront 中的日志记录,因为 Cloudfront 实际向您的服务器发出请求的唯一时间是当它们没有该特定文件的缓存版本时。

要打开日志记录,您需要登录 AWS 控制台并在分发详细信息中选择编辑,以获取您想要启用访问日志的分发。然后,您为 AWS 设置目标存储桶和前缀以将日志文件传送到。日志记录目标应该是不同于源的另一个 S3 存储桶。否则,您的报告将包括对 Amazon 提供的日志文件的请求和对日志文件的下载请求。

当您配置日志记录时,它将以这种格式将日志保存在您指定的存储桶中:http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html#LogFileFormat

【讨论】:

以上是关于Amazon Cloudfront - 将 CDN 域名传递到源服务器的主要内容,如果未能解决你的问题,请参考以下文章

Amazon S3 Cloudfront 部署最佳实践

带有 Route 53 的 Amazon CloudFront

Single Page App + Amazon S3 + Amazon CloudFront + Prerender.io - 如何设置?

Amazon CloudFront 是不是通过 set-cookie 标头?

Amazon Cloudfront 可以流式传输到 iOS 设备吗

通过 S3 从 Amazon CloudFront 提供 gzip 后的 CSS 和 JavaScript