You need to enable JavaScript to run this app.
导航

CDN 加速网页

最近更新时间2024.01.31 10:43:30

首次发布时间2022.02.23 19:40:09

如果您的网站内容以图片,文本,页面内容为主,您可以使用火山引擎 CDN 为网站做加速,以提高用户浏览的秒开率,同时可帮助网站增强对网页内容的保护。本文介绍使用 CDN 加速网页类网站推荐的方法。

一. 前提条件
  • 您已开通火山引擎 CDN 服务,如果未开通,请先前往 CDN 开通页 进行开通。
  • 您已经拥有稳定运行的业务服务器(即源站)和已备案的加速域名。
二. 业务场景
  • 加速域名:pages.example.com。
  • 业务内容:html,css,js,图片,文本内容等。
  • 服务区域:中国内地。

业务诉求:

  • 提高请求命中率,减少回源请求;
  • 需要使用 HTTPS 加密服务降低数据被篡改的风险;
  • 提高网站的安全性,可支持 Web Application Firewall (WAF)、Bot Management 相关安全策略;
  • 提升整体响应用时和可用性。
三. 推荐配置

域名操作入口:

  • 登录火山引擎 内容分发网络
  • 域名新增:在左侧导航栏,点击 域名管理
  • 在域名管理页面,点击 新增
  • 更多详情可前往 快速入门

域名新增完成后,可在左侧导航栏,点击 域名管理。在域名列表页,找到待配置的域名,在 操作 列上,点击 管理 进入域名配置页。然后点击 编辑,进入域名配置编辑页面。

alt

在配置页进行配置修改或开关开启、关闭操作后,您还必须点击右上方 提交编辑,配置才能生效。

域名支持多配置项同时修改,一次提交。下文为根据点播业务场景,推荐的配置项操作指南。

3.1 提高请求命中率,减少回源请求

在配置页,点击 缓存配置,可通过以下维度提升文件在 CDN 的请求命中率,减少回源请求

3.1.1 配置缓存过期时间

  • 图片,样式类资源,建议缓存30天以上,例如:htm,txt,html;
  • 页面,首页类文件,可根据业务更新频率配置缓存时间;
  • 动态类文件,建议配置不缓存;
文件类型
文件示例
图片
bmpjpgjpegpnggifwebp,ico,tiff
样式
jscssxmljson
页面文件
htmtxthtmlshtml
首页
/index.shtmlindex.htmlindex.htmindex.aspx
动态
aspphpjspashxaspxdo

配置示例
php 文件不缓存,js 文件缓存1天,其他文件缓存30天。
alt

3.1.2 配置去问号参数缓存

URL 中?后的参数变化与本身资源内容无关时,可有效提高缓存命中率。

配置示例
全部文件去问号参数缓存,带参数回源
alt

3.2 保障访问数据安全

配置 HTTPS 证书,将终端用户和 CDN 之间的通信进行加密,可保障访问数据安全。开启HTTPS的同时,火山 CDN 会默认帮您开启HTTP/2 来提升 web 性能,减少网络延迟。同时也会默认帮您开启 HTTP 和 HTTPS 共享缓存来减少回源,提升命中率。当您开启 HTTPS 时,如果网站业务比较敏感,建议您同时开启强制跳转 HTTPS 对全部请求进行加密。

配置操作

  • 在配置页,点击 HTTPS 配置,设置 状态开启,在 服务授权 处,点击 授权
    alt
  • 如果您的加速域名暂时无证书,可在 火山引擎证书中心申请或购买。
  • 如果您在证书中心已有可用证书,可以直接选择证书。
  • 如果您在证书中心无可用证书,可点击 上传证书,证书上传后,将会自动在证书中心托管。
    alt
  • 开启强制跳转 HTTPS :用户访问为 HTTP 请求时,会将其重定向为 HTTPS 请求,并进行后续响应。
    alt

3.3 提升整体响应用时和可用性

3.3.1 开启回源跟随(可选)

若源站有响应 302/301 状态码的情况,建议开启回源跟随,CDN 将直接请求重定向后的地址获取资源,并响应给用户,提升终端访问的整体响应时间。CDN节点默认对301/302状态码不缓存。

配置示例
在配置页,点击 回源配置,可开启 回源重定向跟随
alt

3.3.2 文件压缩(可选)

开启压缩功能后,CDN节点会对资源进行智能压缩后返回,缩小传输文件大小,提升文件传输效率,减少带宽消耗。

注意:

  • 若源文件配置了MD5校验机制,请勿开启智能压缩功能。
  • 智能压缩(Gzip压缩)兼容所有浏览器,Brotli压缩不兼容较老版本的浏览器,您可以根据业务需要查询浏览器的兼容情况。
  • 常见的图片文件类型(PNG、JPG、JPEG等)和视频文件类型(MP4、AVI、WMV等)已经做了内容的压缩处理,开启智能压缩或者Brotli压缩没有效果。
  • 如果源站响应的 Vary 头部没有遵循标准,则可能会导致压缩功能不生效。

火山引擎默认的压缩规则:开启压缩时,CDN 节点将会遵循如下处理规则:

  • 如果响应头中的 Content-Type 字段值是以下任意一个值,则对内容进行压缩。
    • text/html
    • text/xml
    • text/plain
    • text/css
    • application/javascript
    • application/x-javascript
    • application/rss+xml
    • text/javascript
    • image/tiff
    • image/svg+xml
    • application/json
    • application/xml
  • 仅对 GET 请求的内容进行压缩。
  • 如果源站开启了压缩功能,且源站响应头中的 content_encoding 字段值不为空且不为 identity,表明源站已经对内容进行了压缩。在这种情况下,内容分发网络不再对内容进行压缩。
  • 同时开启智能压缩和 Brotli 压缩,且请求头的 Accept-Encoding 字段值包含 br 和 gzip 时,对内容进行 Brotli 压缩。
  • 如果请求为 Range 请求,缓存节点会忽略 Range,返回压缩后的完整文件。

配置操作

  • 在配置页,点击 高级配置 开启 智能压缩
    alt

3.3.3 支持跨域(可选)

网页加速时,有时候会遇到“网页内容无法访问”,这个时候打开 Console 往往会看到类似图中跨域错误消息。
alt

当加速域名遇到跨域错误时,可在 火山引擎CDN控制台 添加域名支持跨域配置,即可恢复。
跨域相关 HTTP 响应头介绍:

  • Access-Control-Allow-Origin:允许的域
  • Access-Control-Allow-Methods:允许的跨域的请求方法
  • Access-Control-Allow-Headers:在响应预检请求的时候使用,用来指明在实际的请求中,可以使用哪些自定义 HTTP 请求头
  • Access-Control-Expose-Headers:设置浏览器允许访问的服务器的头信息的白名单
  • Access-Control-Max-Age:这次预请求的结果的有效期是多久,单位为秒

配置示例
支持全部请求跨域,则配置添加 HTTP 响应头:Access-Control-Allow-Origin:* 即可
alt

支持post,get请求,且请求来自 http://foo.example 的请求跨域;则添加 HTTP 响应头:Access-Control-Allow-Origin:http://foo.example ,Access-Control-Allow-Headers:POST,GET。
alt