AWS CloudFront / 亚马逊CDN使用教程
步骤:
1. 打开CloudFront服务之后,首先需要选择分发类型。分发类型分为一般的静态文件分发和流媒体分发,即Web和RTMP,我的站点即选择Web类型。

2. CDN回源设定。
a. 首先要填写源站地址Origin Domain Name,源站可以是一个AWS S3,也可是是一个普通web站点。对于web站点,你要填写的的便是该web站点的域名,不支持直接填写IP;需要注意的是,该域名不能与站点提供给用户访问的域名一致,而是一个单独的回源域名。例如对于我的站点,其域名为www.dancen.com,我新注册了一个域名wwwcdn.dancen.com用于CDN回源。为什么回源域名不能与站点域名一致呢,很好理解,以我的站点为例,当用户访问站点www.dancen.com时,通过DNS系统查询得到站点的CNAME记录,CDN再通过对CNAME的解析到达边缘节点;当需要回源时,CDN又会访问回源域名,如果回源域名也是www.dancen.com,那就形成了一个循环,www.dancen.com -> CDN -> www.dancen.com,而且这是个死循环
---------------------
b. 其次,需要选择回源协议,对安全要求不高的话,选择http only即可。

3. 缓存设定。
a. 需要指定用户访问的协议,http和https、重定向http到https、仅https,根据需要选择。
b. http方法,默认选择GET,HEAD即可。
c. 需要注意的是对象缓存Object Caching的设定,该设定用来指定 CloudFront 为 Web 分配缓存对象的时长。
Use Origin Cache Headers选项表示以源站http header中Cache-Control max-age 或 Cache-Control s-maxage 指令或者 Expires 标头字段的设定为准;
Customize选项中,最短、最长和默认 TTL 值来控制 CloudFront 在缓存中保留对象的时长 (以秒为单位),超过该时长后才会将另一个请求转发到源。标头值还确定浏览器在缓存中保留对象的时长,超过该时长后才会将另一个请求转发到 CloudFront。
d. Query String Forwarding and Caching设定。CDN中缓存的对象是以查询的URL来区分的,该项的默认选择为NONE,表示忽略URL 中?之后的参数,有效提高文件缓存命中率,提升分发效率,这种情况下,
http://www.dancen.com/t.png?v1
http://www.dancen.com/t.png?v2
会被认为是同样的请求,当t.png已经被CDN缓存,并且没有过期时,即使服务器上的t.png被修改了,用户也获取不到新版的t.png。
虽然AWS官方推荐使用不同的文件名来对文件进行版本控制,但为了管理方便,我打算通过参数来对缓存进行版本控制,因此该项我设置为保留所有参数,即Forward all, cache based on all,这种情况下,
http://www.dancen.com/t.png?v1
http://www.dancen.com/t.png?v2
是两个不同的请求,当我修改了服务器上的t.png时,客户端只需要修改URL的参数,就能够获取到最新的t.png。

4. 分发设定。
a. 价格类别,价格类别由分发区域决定,最高档即全球分发,最低档即只在AWS的大本营北美进行分发。
b. 源站域名Alternate Domain Names,即我的站点提供给用户访问的域名,www.dancen.com,而该域名的CNAME,便要设定为最后CloudFront为我们生成的CDN域名:xxxxxxx.cloudfront.net。
c. SSL证书设置。
默认的ColudFront证书Default CloudFront Certificat。如果你让用户通过最后CloudFront为我们生成的CDN域名:xxxxxxx.cloudfront.net直接访问你的站点,那选择该选项。
自定义SSL证书。如果你让用户通过你自己的域名,例如www.dancen.com访问你的站点,那你就得为CloudFront提供该站点的证书,该证书可以通过ACM(AWS Certificate Manager)导入,具体流程参照本文最厚的的附文部分。
d. 创建分发,点击Create Distribution按钮即可。

5 获取CloudFront为我们生成的CDN域名。
创建分发后,待Status变为Deployed,说明CloudFront配置生效,这个过程可能耗费20分钟左右。
CloudFront会生成一个域名Domain Name:xxxxxxx.cloudfront.net,我们需要在域名提供商的DNS系统把源站域名,如
www.dancen.com的CNAME记录设定为该域名。在CMD窗口执行nslookup命令检查你的域名,如www.dancen.com,能否解析出CDN提
供的IP,确认CNAME设定是否生效,生效后CDN加速便算是开启成功,使用你的域名,如www.dancen.com测试通过即可。


附:
通过AWS的ACM(AWS Certificate Manager)服务导入站点SSL证书。ACM服务可以直接请求证书,也可以导入证书,这里假设你的源站已经使用https,有了SSL证书,因此只讲述导入证书的步骤。
1. 打开ACM服务,点击导入证书。

2. 填写证书内容。
到你的站点服务器,查看证书内容,并填入ACM。例如fullchain.pem文件即为证书,打开之,第一个begin-end即为证书正文,第二个begin-end即为证书链;privkey.pem文件即为私匙。填写完毕后,点击审核并导入即可



AWS CloudFront / 亚马逊CDN使用教程的更多相关文章
- 【AWS】亚马逊云常用服务解释
新公司使用的是亚马逊服务,刚开始的时候,对很多名词不太明白,总结了一下如下 1,EC2 这个是亚马逊的一种服务器服务,可以理解为跟vmware差不多,EC2为虚拟机提供载体,EC2上跑虚拟机服务器. ...
- [cnblog新闻]阿里的营业利润3倍于亚马逊,但为何市值只是亚马逊的一半?
阿里的营业利润3倍于亚马逊,但为何市值只是亚马逊的一半? 投递人 itwriter 发布于 2019-01-26 16:52 评论(0) 有688人阅读 原文链接 [收藏] « » http://ww ...
- AWS系列之一 亚马逊云服务概述
云计算经过这几年的发展,已经不再是是一个高大上的名词,而是已经应用到寻常百姓家的技术.每天如果你和互联网打交道,那么或多或少都会和云扯上关系.gmail.github.各种网盘.GAE.heroku等 ...
- A亚马逊WS网上系列讲座——怎么样AWS云平台上千万用户的应用建设
用户选择云计算平台构建应用程序的一个重要原因是高弹性的云平台和可扩展性. 面向Internet应用程序通常需要支持用户使用大量,但要建立一个高度可扩展.具有一定的挑战,高度可用的应用程序,只有立足AW ...
- 使用AWS亚马逊云搭建Gmail转发服务(一)
title: 使用AWS亚马逊云搭建Gmail转发服务(一) author:青南 date: 2014-12-30 15:41:35 categories: Python tags: [Gmail,A ...
- [转]Amazon AWS亚马逊云服务免费一年VPS主机成功申请和使用方法
今天部落将再次为大家介绍如何成功申请到来自亚马逊的Amazon AWS免费一年的VPS主机服务.亚马逊公司这个就不用介绍了,是美国最大的一家网络电子商务公司,亚马逊弹性计算云Amazon EC2更是鼎 ...
- 亚马逊AWS在线系列讲座——基于AWS云平台的高可用应用设计
设计高可用的应用是架构师的一个重要目标,可是基于云计算平台设计高可用应用与基于传统平台的设计有很多不同.云计算在给架构师带来了很多新的设计挑战的时候,也给带来了很多新的设计理念和可用的服务.怎样在设计 ...
- Node开发文件上传系统及向七牛云存储和亚马逊AWS S3的文件上传
背景起,有奏乐: 有伟人曰:学习技能的最好途径莫过于理论与实践相结合. 初学Node这货时,每每读教程必会Fall asleep. 当真要开发系统时,顿觉精神百倍,即便踩坑无数也不失斗志. 因为同团队 ...
- 亚马逊AWS免费套餐EC2安装centos连接登录并创建root
前言:刚开始使用亚马逊的AWS的免费套餐EC2,由于个人习惯使用centos系统,所以果断安装,但是AWS为了安全性,默认禁止用户使用root账户,导致安装配置环境各种问题.所以我把从安好系统后遇到的 ...
随机推荐
- Prometheus监控系统之入门篇(一)
1. 简介 Prometheus: (简称Prom)是由SoundCloud开发的开源监控报警系统.是大名鼎鼎的CNCF云原生基金会下的第二大开源项目.具有如下特点: 使用Go语言开发 内置时序数据库 ...
- Vue2生命周期
这是Vue文档里关于实例生命周期的解释图 那么下面我们来进行测试一下 <section id="app-8"> {{data}} </section> va ...
- 20199324《Linux内核原理与分析》第十二周作业
格式化字符串漏洞实验 一. 实验描述 格式化字符串漏洞是由像 printf(user_input) 这样的代码引起的,其中 user_input 是用户输入的数据,具有 Set-UID root 权限 ...
- StartDT AI Lab | 智能运筹助力企业提升决策效率、优化决策质量
在人工智能和大数据时代,越来越多的云上数据和越来越智能的模型开始辅助人们做出各种最优决策,从运营效率.成本节约.最优配置等方方面面,实现降本增效,进一步提升商业效率.京东.美团.滴滴.顺丰等众多知名厂 ...
- Educational Codeforces Round 55 (Rated for Div. 2)E
题:https://codeforces.com/contest/1082/problem/E 题意:给出n个数和一个数c,只能操作一次将[L,R]之间的数+任意数,问最后该序列中能存在最多多少个c ...
- 图遍历算法的应用(包括输出长度为l的路径最短最长路径)
判断从顶点u到v是否有路径 void ExistPath(AdjGraph* G, int u, int v, bool& has) { int w; ArcNode* p; visit[u] ...
- linux版本neo4j安装配置教程
https://blog.csdn.net/weixin_44293236/article/details/89467489
- 写入简单的日志log
log.c: #define _GNU_SOURCE #include <stdio.h> #include <stdlib.h> #include <string.h& ...
- Angular(一)
Angular开发者指南(一)入门介绍 什么是AngularAngularJS是动态Web应用程序的结构框架. 它允许您使用HTML作为模板语言,并允许您扩展HTML的语法以清晰,简洁地表达应用程 ...
- fastjon案例
--json为json串JSONObject obj = JSON.parseObject(json);String x = obj.getString("cropId");JSO ...