前言

为什么使用CDN

随着网站业务,用户的增多,网站也会也会随着产生越来越多媒体(图片,视频等)。这些内容将会拖慢你的网站速度,导致用户流失。根据谷歌统计:网站加载时间慢一秒则转化率减少百分之7。而面临这些复杂的网络环境,以及全球用户的访问体验,使用CDN(内容分发网络)成为了我们的最好选择之一。

为什么选择AWS Cloudfront

Amazon CloudFront 是一项加快将静态和动态 Web 内容分发给用户的速度的 Web 服务。CloudFront 通过全球数据中心(称作边缘站点)网络传输内容。当用户请求用 CloudFront 提供的内容时,请求被路由到提供最低延迟(时间延迟)的边缘站点,从而优化网站速度。

Amazon CloudFront原理图

全球边缘网络

Amazon CloudFront拥有众多边缘节点,为网站加速提供了可靠、低延迟和高吞吐量网络连接。

Amazon CloudFront的边缘节点

安全性

1.针对网络和应用层攻击的保护

Amazon CloudFront、AWS Shield、AWS Web 应用程序防火墙(WAF)和 Amazon Route 53 无缝协作,创建了灵活的分层安全边界来抵御多种类型的攻击,包括网络和应用层 DDoS 攻击

2.SSL/TLS 加密和 HTTPS

使用 Amazon CloudFront,可以使用最新版本的传输层安全(TLSv1.3)通过 HTTPS 传递内容、API 或应用程序,以加密和保护查看器客户端与 CloudFront 之间的通信

3.访问控制

利用 Amazon CloudFront,您可以通过大量功能来限制对您的内容的访问。(如IP访问控制,地区访问控制,浏览器访问控制)

正文

在正式使用之前我们首先得拥有一个亚马逊云账户。点我即可跳转到注册地址,目前亚马逊云有近百种免费使用产品。

亚马逊云海外账号注册

准备材料

  • 一个邮箱,国内国外都行。
  • 一张双币信用卡。Visa、Master其中一种,银联信用卡也可以。(虚拟信用卡也可以,不过有概率会风控)
  • 手机号,国内外都行。

首先进入亚马逊云官网,点击创建海外区域用户

输入邮箱和自定义名称并验证邮箱是否能够注册AWS账户,成功会发送验证邮件,输入邮件验证码进入下一步。

然后设置密码

然后设置联系人信息,在商用和个人之间一定要选择个人,否则账户会认证失败。

下面表格填写账户拥有者的信息,国内用户建议选择中国区域,地址可以填信用卡账单地址或者自己的居住地址(中文地址需要转为英文格式的拼音)。

然后验证信用卡(注意,卡里一定要有至少1美元余额用于验证)

接下来只输入手机号获取验证码

最后验证手机号即可选择服务。

AWS Cloudfront使用教程

登录控制台在左上搜索Cloudfront快速找到产品,点击创建Cloud Front分配。

源设置

源站(Origin):即需要被加速的站点(不是用来访问的域名)。它可以是 S3 , ELB/EC2,Elemental MediaStore/MediaPackage等等。也可以用户自定义站点。所以这里我们填自己网站域名。

源协议策略:源协议策略确定需要的协议(HTTP 或 HTTPS),这里我们选择第三个“匹配查看器 ”,CloudFront会根据源站进行选择使用HTTP 或 HTTPS。注意:该源是 源站的SSL证书必须与指定的域名匹配。

源路径:(默认不填就行)如果源站内容有多层目录,且又希望回源的时候路径上不体现这些目录,可以在此设置要隐藏的目录层级。例如:配置源路径 /conut 后,客户访问www.xxx.com/index.html 相当于访问源站 origin.xxx.com/cont/index.html

添加自定义标头:可以在请求源站时,带上特殊的Http header头,例如可以带上自定义的验证头。默认即可

启用源护盾:护盾源护盾是一个附加的缓存层,可以减少源站回源的压力,如果源站不在亚马逊云科技上部署,通过源护盾,还可以改善回源的稳定性和速度。注意:启用源护盾会产生额外的费用。请明白自己是否需要。

其他设置:默认即可。

默认缓存行为

路径模式:选择默认是 * 即可,就是全部匹配。支持通配符 * 代表0或多个字符,? 代表完全匹配一个字符。注意路径模式是区分大小写的。例如 image/*.jpg 代表image目录下的所有jpg文件都遵循这个缓存行为。

自动压缩对象:是否在客户端支持的时候,返回源站文件的压缩版本,以优化体验。选择“是”

查看器

查看器协议策略:需要指定用户访问的协议,http和https、重定向http到https、仅https,根据需要选择。

允许的 HTTP 方法:默认第一个即可

缓存键和源请求

缓存策略

这一步比较重要,应该根据自己业务选择对应的缓存策决。CloudFront默认提供了多种缓存托管策略,可以直接选择使用,也可以根据需要自定义缓存策略来使用,默认提供的托管策略如下:

托管 缓存策略
CachingOptimized适用于静态网站加速的场景。源站不会因为不同用户、不同终端等返回不同的内容,内容默认进行了压缩。
CachingOptimizedForUncompressedObjects和上面策略相同,但不进行压缩。
CachingDisabled适用于动态内容,或不可缓存的内容。
Elemental-MediaPackage为Amazon Elemental MediaPackage服务配置的策略。
Amplify为Amazon Amplify Web应用程序配置的策略。
如果你不知道选择哪一个,请默认选择‘‘CachingOptimized’’

源请求策略:缓存策略用于决定内容是否进行缓存,以及缓存的时间。CloudFront默认提供了多种缓存托管策略,可以直接选择使用,也可以根据需要自定义缓存策略来使用,默认提供的托管策略如下:

托管 源请求策略
UserAgentRefererHeaders仅包含User-Agent和Referer标头,可以统计客户来源。
CORS-CustomOrigin包含Origin标头,适用于自定义源启用跨源资源共享 CORS。
CORS-S3Origin适用于S3源启用跨源资源共享 CORS。
AllViewer适用于动态请求的源站,源站可以获取查询字符串和Cookie等信息。
Elemental-MediaTailor-PersonalizedManifests适用于Amazon Elemental MediaTailor 终端节点的源
如果你不知道选择哪一个,请默认选择“AllViewer”即可

响应标头策略

可以默认不选

关联函数

默认即可

Web 应用程序防火墙(WAF)

默认不启用。使用AWS WAF会额外计费,如有需要可以使用下方自带的价格估算费用

设置

价格级别

默认选择‘’使用所有边缘站点‘’以获得最佳性能来实现全球加速

备用域名(CNAME)

注意:这里的备用域名指的是真正需要CDN的域名。即给用户访问的域名,也就是国内CDN厂商中的“加速域名”。(若使用自己域名,该项是必须项)CloudFront Distribution 创建完成后,CloudFront 会提供一个以 cloudfront.net 结尾的域名,如果需要使用自己的域名的话,需要在此处填写待使用的域名。

而且直接添加保存是不行,会提示错误。我们需要到自定义SSL证书中验证域名所有权。

验证证书成功我们再添加域名。

最后关闭标准日记记录,打开ipv6。点击创建分配即可完成配置。