避免Amazon CloudFront CDN上的dynamicHTML页面

我正在考虑使用CloudFront分配作为CDN来服务我的图像,CSS和JS。 我有一个CloudFront分配设置指向我的代码所在的服务器相同的目录,只是将子域更改为cdn,所以它会是cdn.domain.com

我的问题是,这个CDN子域名将切断HTML和PHP链接,我不希望它做。 我只想使用Cloudfront图像,CSS和JS。

你能指点我适当的方式来做到这一点? 在云端面板中有没有办法做到这一点?

我想我们可以从服务器404页面从htaccess呼叫到达原始服务器,但我正在寻找一个更好的select,实际上会阻止请求到达原始服务器。

CloudFront适合提供dynamichtml。 即使页面没有被caching,用户(特别是远程用户)的速度也会更快,因为它使用的是亚马逊的骨干网,而不是公共互联网,这是为这项工作优化的。 它可以保护您的服务器免受第4层(TCP)和第7层(http)的攻击。 如果您使用CloudFront支持的 http / 2,则使用单个域会更快,因为即使在客户端知道需要它之前,http / 2也可以发送呈现页面所需的资源。

将HTML设置为0,静态资源明显更高。

看看这样的Re:Invent会议 ,了解更多信息,或者优秀的文档 。

在S3中创build一个空桶。 名字没有关系。 将此作为第二个来源添加到CloudFront分配中。 重新configuration默认caching行为以将所有请求发送到存储桶。

然后,为您希望CloudFront从您的服务器提供的path模式创build新的caching行为,指向您的自定义来源。 path模式的例子是/*.css/*.png*通配符匹配path中的任何字符(包括其他斜杠),因此这些文件将由CloudFront提供服务,其他任何内容都会从虚拟存储桶中获取“拒绝访问”XML消息。

奖励要点:如果您为网站托pipeconfiguration虚拟存储桶,并在创build新的S3来源时使用网站端点主机名(而不是从下拉列表中select存储桶),则可以为存储桶configuration默认错误页面,显示HTML而不是访问被拒绝…或者您可以configuration存储桶以使用S3redirect路由规则将任何到达的请求redirect回您的非cdn域。