Amazon Cloudfront 移动到新服务器后无法连接

Posted

技术标签:

【中文标题】Amazon Cloudfront 移动到新服务器后无法连接【英文标题】:Amazon Cloudfront can't connect after moving to new server 【发布时间】:2015-05-21 17:18:39 【问题描述】:

我刚刚将我的 Magento 站点从一台服务器移动到另一台主机/服务器。除 Cloudfront 外,一切正常。新服务器确实有 SSL,就像上一个服务器一样。

但现在,当我尝试从 Cloudfront 查看任何内容时,我收到了错误:

“CloudFront 无法连接到源。”

就像在亚马逊缓存的 DNS 并需要他们永远更新它?将站点移动到新服务器以保持 CloudFront 正常工作时,您需要做些什么吗?

【问题讨论】:

您应该尝试一些明显的故障排除步骤,其中最重要的是尝试从云端到源的 http(如果您的 ssl 不完全正确怎么办?“它从浏览器工作”证明很少。)将新的测试主机名指向新服务器,并将 cloudfront 指向新主机名(这排除了 dns 问题)。检查您的服务器日志以获取来自 cf 的连接尝试?用全新的 cf 发行版试试这些东西? (无需删除旧版本。设置新发行版是免费的。) 您在新服务器上的 SSL 配置是否与旧服务器相同?文档:docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/… 【参考方案1】:

让 CloudFront 与 SSL 一起工作可能会很棘手,特别是当源主机名与 CNAME 的主机名不同时。 例如,如果您的主机名是 www.example.com,来源是 www-example.us-west-2.elasticbeanstalk.com,则来自云端服务器的请求将包含来源的 Host 标头:

> GET /index.html HTTP/1.1
> Host: www-example.us-west.elasticbeanstalk.com
> User-Agent: CloudFront/2.3
> Accept: */*

源主机需要能够处理 www-example.us-west.elasticbeanstalk.com 的经过身份验证的 SSL 请求,但通常您将其设置为可以处理原始主机名 www 的 SSL 请求。例子.com。在这种情况下,您有两种选择:

    将 Host 标头列入白名单。这将导致 CloudFront 将相同的 Host 标头 ( Host: www.example.com ) 发送到应该能够正确处理它的源:

    另一个选项是将您的源设置为具有不同子域的相同主机名,例如将源设置为 origin.example.com 并在 origin.example.com 和 www-example.us 之间设置 CNAME -west.elasticbeanstalk.com

【讨论】:

以上是关于Amazon Cloudfront 移动到新服务器后无法连接的主要内容,如果未能解决你的问题,请参考以下文章

Amazon S3 和云端

Amazon S3 和 Cloudfront 上的 Node.js 服务器

使用 .htaccess 从 Amazon S3 CloudFront 访问服务器文件

如何彻底清除 Amazon CloudFront 缓存?

将 Amazon 的 CloudFront 指向 A 记录而不是 CNAME

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