You need to enable JavaScript to run this app.
内容分发网络

内容分发网络

复制全文
缓存配置
HTTP 响应头设置
复制全文
HTTP 响应头设置

本文档介绍如何在火山引擎内容分发网络(CDN)中配置 HTTP 响应头。

默认情况下,在对用户请求的响应中,CDN 会包含源站响应中的所有头部。您可以配置 CDN 在用户请求的响应中所包含的头部。

操作步骤

  1. 登录 火山引擎内容分发网络控制台
  2. 在左侧导航栏,点击 域名管理
  3. 域名管理 页面,找到需要配置的域名,点击 管理
  4. 定位 HTTP 响应头设置 模块。
    • 如果您使用的是旧版域名管理页面,点击 编辑配置,然后在 缓存配置 标签页中定位 HTTP 响应头设置 模块。
    • 如果您使用的是新版域名管理页面,点击 编辑域名。在页面左侧的树状配置项列表中,定位 功能配置 > 缓存配置 > HTTP 响应头设置。如果该模块置灰,点击模块右边的 +
      关于新旧版域名管理页面的区别,参见 新版域名配置
  5. HTTP 响应头设置 模块中,点击 新增规则。您最多可以添加 50 条规则。
  6. 参照文档下方的 配置说明 对该规则进行配置。
  7. 配置完成后,点击 提交编辑

Image

配置说明

配置

说明

配置类型

表示一个操作类型。该配置有以下选项:

  • 设置:表示设置一个头部。设置操作包括添加与修改。如果源站响应中已包含该头部,该头部的值会被覆盖。如果源站响应中没有包含该头部,该头部会被添加。
  • 删除:表示删除一个头部。

头部名称

表示需要设置或者删除的一个头部。头部名称是大小写不敏感的。您可以从下拉列表中选择一个常用头部,参见 常用头部。除了 注意事项 中列出的那些头部名称之外,您可以输入任意一个头部名称。头部名称不能超过 1,024 个字符,不能包含以下字符:

  • 汉字、下划线(_)、空格、双引号(")、冒号(:)

取值方式

对于您在 头部名称 中指定头部,该配置表示该头部值的类型,有以下选项:

  • 常量:表示该头部值是一个字符串。
  • 变量:表示该头部值来自一个变量。
  • 自定义:表示该头部值是变量与字符串拼接后的一个字符串。

头部取值

表示您在 头部名称 中指定头部的取值。

  • 如果 取值方式常量,您需要输入一个字符串。该字符串的长度不能超过 1,024 个字符,不能包含以下字符:
    • 汉字、下划线(_)、空格、双引号(")、冒号(:)
  • 如果 取值方式变量,您需要从列表中选择一个变量。参见 变量列表
  • 如果 取值方式自定义,您需要输入由变量和字符串拼接后的一个字符串。变量需要包裹在 {} 中,由 $ 开头。例如 bind${remote_addr}to${host}done

如果 头部名称Access-Control-Allow-Origin,您需要在 头部取值 中指定来源 IP 和来源域名,端口是可选的,域名可以是泛域名。多个来源 IP 和来源域名之间以逗号(,)分隔。建议您指定的来源 IP 和来源域名以 http:// 或者 https:// 开头。

跨域校验

表示是否需要 CDN 校验用户请求头中的 Origin 头部。该配置仅在以下情况下会出现:

  • 头部名称Access-Control-Allow-Origin,并且 取值方式常量

该配置的设置说明如下:

  • 启用:表示 CDN 会校验 Origin 头部 。
    • CDN 会将用户请求中的 Origin 头部值与 Access-Control-Allow-Origin 的配置值做精确匹配。如果两者不匹配,则校验失败。此时,CDN 在响应中不会包含 Access-Control-Allow-Origin 头部。用户请求会失败。
    • 如果两者匹配,则校验成功。此时,CDN 在响应中会包含 Access-Control-Allow-Origin 头部,头部值就是用户请求中的 Origin 头部值。
    • 如果 Access-Control-Allow-Origin 的配置值包含泛域名,则 CDN 会将 Origin 中的 host 与泛域名匹配,对 Origin 中的其余部分做精确匹配。
  • 禁用:表示 CDN 不会校验 Origin 头部,由客户端浏览器判断跨域请求是否成功。CDN 在响应中始终会包含 Access-Control-Allow-Origin 头部,头部值就是您对 Access-Control-Allow-Origin 配置的值。

说明

  • 如果您设置 Access-Control-Allow-Origin 的值为 *,无论 跨域校验 是否启用,CDN 在响应中始终设置 Access-Control-Allow-Origin: *
  • 如果您设置 Access-Control-Allow-Origin 的值为多个以逗号(,)分隔的条目,您必须设置 跨域校验 为开启。不然,客户端浏览器会提示 "Access-Control-Allow-Origin 只允许一个值" 的错误,判定跨域请求失败。
  • 如果您设置的 Access-Control-Allow-Origin 值中包含泛域名,并且 跨域校验 是启用,CDN 也会检查请求中的 Origin 头部值是否匹配这个泛域名。如果 Origin 头部值不匹配该泛域名,也不匹配 Access-Control-Allow-Origin 值中的其他域名,则校验失败。

变量列表

CDN 提供了以下变量。

变量名称

说明

示例

raw_uri

表示客户端请求 URL 中的路径。

/dir/volcano.php

request_uri

表示客户端请求 URL 中的路径和查询字符串(query string)。

/dir/volcano.php?color=red&n=10

remote_addr

表示发起本次请求的客户端的 IP 地址。

xx.xx.xxx.xx

remote_port

表示发起本次请求的客户端的端口。

5936

host

表示客户端请求中 host 头部的值。

需要留意的是,CDN 在处理请求时可能会修改该头部的值。因此,不建议您使用该头部,而是使用 http_host

www.example.com:8080

http_host

表示客户端请求中 host 头部的值。该头部值不会被 CDN 修改。

args

表示客户端请求 URL 中的查询字符串。

color=red&n=10

msec

表示 CDN 设置响应头的时间,格式是 Unix 时间戳,精确到毫秒。该时间戳接近首包的响应时间。

1704444754.917

scheme

表示客户端使用的协议。

https

cdn_cache_status

表示请求是否命中缓存。

  • edge_hit:表示请求命中了边缘节点的缓存。
  • parent_hit:表示请求命中了回源节点的缓存。
  • miss:表示请求没有命中缓存。

edge_hit

response_time

表示 CDN 处理请求的时长,单位是毫秒。请求处理时长是从 CDN 收到用户请求的第一个字节,到开始响应第一个字节所经过的时间。

30

常用头部

CDN 提供了以下常用的头部。

说明

这些头部是标准的 HTTP 响应头。如果响应头的值是合法的,客户端浏览器会根据响应头做相应的操作。

头部名称

说明

示例

Access-Control-Allow-Origin

指定允许访问您站点资源的来源(origin)。

  • 多个来源使用逗号(,)分隔。
  • 您可以指定 *,表示任意来源。
  • 来源中的 host 可以是 IP 地址,也可以是域名。域名可以是泛域名。
  • 来源可以包含端口。
  • 如果您指定的来源不是 * 并且 跨域校验 为启用,则来源必须符合 URL 规范,也就是说来源必须包含 scheme 和 host。

示例一
*

示例二
https://www.example.net:448,http://xx.xxx.xxx.x,https://*.example.com

Access-Control-Allow-Methods

指定跨域请求允许使用的 HTTP 请求方法。多个方法使用逗号(,)分隔。

GET

Access-Control-Allow-Headers

指定跨域请求允许包含的 HTTP 请求头。多个请求头使用逗号(,)分隔。

X-Custom-Header

Access-Control-Expose-Headers

指定在客户端运行的脚本所允许访问的响应头。多个响应头使用逗号(,)分隔。

默认情况下,客户端脚本允许访问的响应头有 Cache-ControlContent-LanguageContent-TypeExpiresLast-Modified。如果您需要客户端脚本访问更多的响应头,可以在该头部中指定。

Content-Encoding

Access-Control-Allow-Credentials

指定跨域请求是否需要包含鉴权信息。鉴权信息包括 cookie,鉴权请求头或客户端 TLS 证书。

true

Access-Control-Max-Age

指定跨域请求时,客户端对请求内容发起的预检请求的缓存时长。单位是秒。在缓存过期前,客户端不用再次发送预检请求。

3600

Cache-Control

对于 CDN 返回的内容,指定该内容在客户端的缓存方式。

max-age=3600

Content-Disposition

指示 CDN 返回给客户端的内容是以下载的方式提供。并指定下载的文件名。

attachment;filename=Demo.xlsx

Content-Language

指示 CDN 返回给客户端的内容语言。

zh-CN

Content-Type

指示 CDN 返回给客户端的内容类型。

text/plain

Pragma

对于 HTTP/1.0,指示 CDN 响应在客户端的缓存方式。头部值只能是 no-cache,指示客户端不要缓存 CDN 的响应。

no-cache

注意事项

您设置的响应头不能是以下头部。

  • access-check
  • server-timing
  • via
  • x-request-ip
  • x-tt-trace-tag
  • x-bdcdn-logid
  • byte-error-code
  • x-bdcdn-cache-status
最近更新时间:2025.11.25 18:04:41
这个页面对您有帮助吗?
有用
有用
无用
无用