海外CDN

    配置域名

    注:所有配置项配置成功后,将在五分钟内生效。

    缓存配置

    配置缓存过期时间

    背景信息

    配置缓存过期时间即配置缓存文件在cache中保存的时长。过期时间可以通过控制台设置,也可以通过HTTP的Header中的缓存控制头(Expires或Cache-control)设置。

    • 两者都未设置时,CDN不缓存数据。
    • 两者都设置时,根据配置的缓存策略权重来判断优先级。

    说明:

    对于HTTP Header中设置缓存控制头Expires与Cache-control的区别:

    • Cache-control:用于控制http缓存。如果设置为“no-cache”,则意味着指示请求或响应消息不能缓存(HTTP/1.0用Pragma的no-cache替换)。
    • Expires:表示失效时间,也就是文件在本地客户端的缓存时间,等同max-age的效果,Expires的值应该使用GMT格式的时间:如 Thu, 01 Dec 1994 16:00:00 GMT。 若Expires与Cache-control同时存在,Expires会被Cache-Control的max-age覆盖。

    注意:

    • 未通过验证或正在验证的域名不可配置;
    • CDN支持用户自己配置过期时间,此处配置的优先级会高于源站的配置;
    • 用户可在域名详情页的“缓存配置”页签中,对配置项的过期时间进行添加或修改;
    • CDN支持文件类型(扩展名)和目录,文件名三种配置项的过期时间设置;
    • 用户最多可设置15个配置项的过期时间;
    • 静态内容如jpg、png、mp3 等内容的过期时间建议设置一个月。

    操作步骤

    1. 进入“CDN域名详情”页。
    2. 选择“缓存配置”页签。
    3. 点击“添加配置”,将会出现编辑面板,在编辑框内输入配置项和配置的过期时间,点击确定则完成一个配置项的缓存过期时间添加。

    4.点击某配置项对应的“编辑”链接,可修改该配置项的过期时间。

    注意:

    • 支持文件后缀名、目录和精确文件的配置。
    • 这里配置的过期时间优先级高于源站的配置,支持文件后缀名的配置和目录的配置。
    • 缓存过期时间为0~100秒,配置的过期时间应在此范围内。
    • 权重代表规则的优先级,取值为0~100,权重越大,优先级越高,规则优先生效。
    • 不推荐两条缓存策略配置相同的权重,如果权重相同,会随机选择其中一条策略生效。

    配置缓存key计算策略

    应用场景

    CDN使用URL作为KEY命中缓存,此项配置可以对KEY进行一些策略定义。

    缓存key计算策略是指当URL请求中带?并携带缓存key请求到CDN节点的时候,CDN节点在收到该请求后是否将该缓存key的请求URL请求回源站。如果开启缓存key计算策略,该请求到CDN节点后会截取到没有缓存key计算策略的URL向源站请求。并且CDN节点仅保留一份副本。如果关闭该功能,则每个不同的URL都缓存不同的副本在CDN的节点上。

    http 请求中多包含缓存key,但是缓存key内容优先级不高,可以忽略缓存key浏览文件,适合开启该功能;开启后可以有效提高文件缓存命中率,提升分发效率 注意:如果缓存key有重要含义,例如包含文件版本信息等,不推荐开启此功能。

    缓存key计算策略控制CDN计算key的策略:

    • 当设置为“OFF”时,CDN使用整个URL来计算命中缓存的key;
    • 当设置为“ON”时,CDN则忽略URL中第一个“?”后面的所有参数来计算命中缓存的key。

    配置举例

    例如我们设定 http://www.bcecdn.com/sample.png?x=1 请求URL到CDN节点:

    • 开启“缓存key计算策略”后,CDN节点向源站发起请求 http://www.bcecdn.com/sample.png (忽略参数x=1)待源站响应该请求内容,响应到达CDN节点后,CDN节点会保留一份副本;然后继续向终端响应 http://www.bcecdn.com/sample.png 的内容。所有类似的请求 http://www.bcecdn.com/sample.png?参数 均响应CDN副本 http://www.bcecdn.com/sample.png 的内容。
    • 关闭“缓存key计算策略”功能则每个不同的URL都缓存不同的副本在CDN的节点上。例如:http://www.bcecdn.com/sample.png?x=1http://www.bcecdn.com/sample.png?x=2 会响应不同参数源站的响应内容。

    操作步骤

    1. 进入“CDN域名详情”页。
    2. 选择“缓存配置”页签。
    3. 在“缓存Key计算策略”页签中选择“ON”或“OFF”,完成缓存key计算策略的配置。

    访问控制

    设置Referer黑白名单

    原理介绍

    CDN获取HTTP请求中的 referer header,同配置中的Referer黑名单/白名单进行匹配,对匹配上的请求进行拒绝/放过。

    应用场景

    • 对于通过验证的域名,用户需要设置防盗链保护用户的网站不会被其他网站盗链。
    • CDN支持用户自己配置referer黑白名单,用户可在域名详情页的“防盗链”页签中设置防盗链。
    • 用户最多可配置100个Referer黑白名单。
    • 系统默认不开启防盗链功能,需要用户自己配置。

    操作步骤

    1. “CDN域名管理”页点击“域名地址”进入“CDN域名详情”页。
    2. 点击“访问控制”页签,进入防盗链设置页面。

      说明1:默认允许Referer为空。当请求Referer字段为空或无Referer时,CDN正常返回请求信息。空Referer与Referer黑白名单是分别配置,互不干涉。

      • 当配置了“允许Referer为空”和黑名单时,空Referer可以访问;
      • 当配置了“不允许Referer为空”和黑名单时,空Referer不能访问;
      • 当配置了“允许Referer为空”和白名单时,空Referer可以访问;
      • 当配置了“不允许Referer为空”和白名单时,空Referer不能访问。

      说明2:Referer暂不支持路径中有多个通配符,仅支持http://*.a.com/*形式的模糊匹配。

    3. 选择“白名单生效”或者“黑名单生效”,可设置域名对应的referer黑白名单。

      注意: 点击“编辑”后可删除域名对应的全部Referer的黑白名单,数据清除后不可被还原,请谨慎操作。

    设置IP黑白名单

    原理介绍

    CDN获取客户端IP,同配置中的IP黑/白名单进行匹配,对匹配上的客户端请求进行拒绝/放过。

    应用场景

    • 对于通过验证的域名,用户需要设置IP黑白名单保护用户的网站不会被其他网站盗链。
    • CDN支持用户自己配置IP黑白名单,用户可在域名详情页的“访问控制”页签中设置IP黑白名单。
    • 用户最多可配置100个IP黑白名单。
    • 系统默认不开启IP黑白名单功能,需要用户自己配置。

    操作步骤

    1. “CDN域名管理”页点击“域名地址”进入“CDN域名详情”页。
    2. 点击“访问控制”页签,进入IP黑白名单设置页面。
    3. 选择“白名单生效”或者“黑名单生效”,可设置域名对应的IP黑白名单。

    4. 删除IP地址后会清除域名对应的全部IP的黑白名单,数据清除后不可被还原,请谨慎操作。

    回源配置

    CDN支持将回源域名配置为“加速域名”或“自定义域名”。

    HTTPS 配置

    HTTPS

    HTTPS原理

    超文本传输安全协议(Hypertext Transfer Protocol Secure,缩写:HTTPS,常称为HTTP over TLS,HTTP over SSL或HTTP Secure)是一种通过计算机网络进行安全通信的传输协议。HTTPS经由HTTP进行通信,但利用SSL/TLS来加密数据包。HTTPS开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。

    HTTPS连接经常用于万维网上的交易支付和企业信息系统中敏感信息的传输。HTTPS还广泛使用于保护所有类型网站上的网页真实性,保护账户和保持用户通信,身份和网络浏览的私密性。

    HTTPS的主要思想是在不安全的网络上创建一安全信道,并可在使用适当的加密包和服务器证书可被验证且可被信任时,对窃听和中间人攻击提供合理的防护。

    HTTPS的信任继承基于预先安装在浏览器中的证书颁发机构(如GlobalSign等)(意即“我信任证书颁发机构告诉我应该信任的”)。因此,一个到某网站的HTTPS连接可被信任,当且仅当:

    • 用户相信他们的浏览器正确实现了HTTPS且安装了正确的证书颁发机构;
    • 用户相信证书颁发机构仅信任合法的网站;
    • 被访问的网站提供了一个有效的证书,意即,它是由一个被信任的证书颁发机构签发的(大部分浏览器会对无效的证书发出警告);
    • 该证书正确地验证了被访问的网站(如,访问https://example.com时收到了给example.com而不是其它组织的证书);
    • 或者互联网上相关的节点是值得信任的,或者用户相信本协议的加密层(TLS或SSL)不能被窃听者破坏。

    HTTPS和HTTP的区别

    HTTPS和HTTP的区别主要为以下四点:

    • https协议需要到ca申请证书,一般免费证书很少,需要交费。
    • http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
    • http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
    • http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

    HTTP TO HTTPS

    鉴于HTTPS的安全性,有必要把网站从HTTP迁往HTTPS,迁移步骤如下:

    1. 购买证书(可以通过百度智能云);
    2. 在网站和百度智能云上配置证书;
    3. 把网页上所有HTTP链接,修改为HTTPS;
    4. 对HTTP请求301重定向到HTTPS,比如可以重定向首页,这样不影响之前的HTTP访问。

    功能实现

    • 当接收到HTTPS协议的请求时,海外CDN将使用客户上传的SSL证书去校验请求的合法性并返回内容。
    • 如果命中缓存,海外CDN则直接加密响应相应内容至用户。
    • 如果未命中缓存,海外CDN将向源站请求回源。

      • 回源协议选择HTTPS时,需要选择TLS版本
      • 回源协议选择HTTP时,则无需选择TLS版本。

    HTTP/2

    百度CDN已经支持HTTP/2协议,默认开启HTTP/2。用户在使用中,首先要确认开启HTTPS配置,确保HTTPS证书添加成功。用户通过百度智能云CDN API或CDN控制台开启HTTPS配置,配置成功后便可使用HTTP/2。

    HTTP/2原理

    HTTP/2是HTTP的新版本,由IETF于2015年5月以RFC 7540正式发表。它主要基于SPDY协议,在请求方式、状态码、URI和多数HTTP Header字段都和HTTP/1.1 保持高度兼容,并在此基础上有下述优化,提高浏览器的页面加载速度、减少网络延迟:

    • 单个长连接:单一页面可一直复用一个连接,无需新建连接,可优化由于创建多个TCP连接导致的时延,提高吞吐量。
    • 多路复用:在单个连接中,多个请求或响应可同时存在于多个独立的stream上,避免HOL堵塞(Head of Line Blocking)。
    • 优先级排序:对请求标记依赖层级,相同层级支持对请求和响应按优先级排序,Server可依次排序填充数据,提高特定请求的响应速度。
    • 头部压缩和二进制编码:HTTP/2新引入HPACK算法,用于对HTTP头部做压缩,以减少头部数据的传输。此外,HTTP头部使用二进制编码进行传输,替代HTTP/1.x中的纯文本传输。
    • 服务器推送:服务端向客户端发送比客户端请求更多的数据,即允许服务器直接提供浏览器渲染页面所需资源,无需浏览器收到或解析页面后再提起一轮请求,节约加载时间。
    • SSL加密:主流浏览器支持的HTTP/2均基于SSL加密,在保证性能的前提下使网站更安全。在ALPN的支持下,客户端可以主动选择使用HTTP/2还是HTTP/1.1,提高兼容性。

    HTTP/2优势

    HTTP/2允许在同一连接上交替发送请求和响应消息,使用高效率的编码HTTP Header字段,可对请求定义优先级、快速响应更重要的请求。此协议减少了TCP连接的建立,与其他流更少的竞争和更长时间的链接,可有效提高网络容量的利用率。

    • 高效:头部压缩和二进制编码提高了请求和响应的效率,多路复用可避免HOL堵塞。
    • 灵活:通过定义请求的优先级,可以快速获取更重要的响应请求。
    • 快速:服务器推送可预先获得服务器推送至客户端的资源,提高网页加载速度。
    • 安全:主流浏览器均支持基于TLS加密的HTTP/2协议,保证客户网站的安全性。

    配置HTTPS

    说明:

    • 配置HTTPS的一个加速域名,必须要上传证书,了解证书详情请参考证书管理
    • 如果选择HTTPS加速,用户和云的CDN之间使用的是HTTPS协议通信,CDN和源站之间用户可以在设置的时候选择使用HTTPS还是HTTP。回源使用HTTPS时,源站必须支持443端口;如果选择HTTP协议,源站必须支持80端口。

    操作步骤

    1. 登录海外CDN控制台。
    2. 选择需要配置的CDN加速域名,选择“HTTPS配置”页签。
    3. 点击“编辑”,系统弹出设置HTTPS窗口。
    4. 选择“开启”,完成相关参数配置。

      image.png

      • 了解证书详情请参考证书管理
      • “HTTP转换为HTTPS请求”:开启该功能后,CDN节点收到HTTP请求将自动redirect到HTTPS,不开启则直接将请求发回源站处理,目前只支持301跳转。
      • “HTTP/2”:默认开启“HTTP/2”,用户可选择“关闭”;HTTP/2是HTTP的新版本,可提高浏览器的页面加载速度、减少网络延迟。
      • “回源协议”:回源协议为HTTP类型回源将回源至80端口,HTTPS类型则回源至443端口,请保证端口处于服务状态。源站为BOS时,支持HTTP和HTTPS协议回源。
    5. 点击“确认”,完成设置HTTPS。