在没有 S3 的情况下设置 Amazon Cloudfront

问题描述 投票:0回答:3

我想使用 Cloudfront 从我的静态网站提供图像和 CSS。我读过无数文章,展示如何使用 Amazon S3 设置它,但我只想将文件托管在我的主机上,并使用云前端来加速所述文件的传输,我只是不确定如何去做。

到目前为止,我已经使用我的原始域和 CName 在 CloudFront 上创建了一个发行版并进行了部署。

源域:example.me CName media.example.me

我为我的域添加了 CNAME:

media.mydomain.com,目标为 xxxxxx.cloudfront.net

现在这就是我被困住的地方?我是否需要将 HTML 中的链接更新为该 cname,以便如果样式表为 http://example.me/stylesheets/screen.css 是否将其更改为 http://media.example.me/stylesheets /screen.css

以及样式表中的图像从 ../images/image1.jpg 到 http://media.example.me/images/image1.jpg?

只是发现如何链接所有内容有点令人困惑,这是我第一次真正涉足使用 CDN。

谢谢

amazon-web-services amazon-s3 cdn amazon-cloudfront
3个回答
2
投票

是的,您必须更新 HTML 中的路径以指向 CDN。通常,如果您有部署/构建过程,则可以在那时完成此链接更改(以便开发时可以使用本地文件)。

这里要处理的另一件重要事情是 CSS/JS 等的版本控制。您可能会频繁更改 CSS/JS。当您进行任何更改时,CDN 通常需要 24 小时才能反映。 (另一个选项是使 CDN 上的文件失效,但这是明确收费的,不鼓励这样做)。建议的方法是生成一个类似“media.example.me/XYZ/stylesheets/screen.css”的路径,并为每个部署将此 XYZ 更改为不同的数字(时间戳 /epoch 即可)。这样,每次部署时,您只需使 HTML 无效,其他文件无论如何都是新路径,并且将重新加载。这种技术通常称为 URL 指纹识别。


0
投票

是的,您将更新对 CSS 文件的引用以通过 CDN 域加载。如果 CSS 中的图像路径不包含域,它们也会通过 cloudfront 自动加载。


0
投票

有一种简单的方法可以将证书和 Route53 连接到部署在 AWS CloudFront 上的静态站点。

SWS控制台快速云架构构建服务。

您可以通过简单的输入轻松控制AWS资源。请参阅以下文档:

如何使用SWS控制台轻松部署到AWS S3 + CloudFront架构

如何创建证书并使用SWS控制台连接Route53域

您可以随意使用SWS Console轻松部署到AWS S3 + CloudFront架构并创建证书和连接Route53域!

进入Sws控制台服务页面

© www.soinside.com 2019 - 2024. All rights reserved.