云服务器内容精选

  • 使用限制 如果您的后台存在特殊配置,暂不支持配置Content-Type、Cache-Control、Expires。 以下请求头仅支持修改响应头信息,不支持将“请求头操作”类型设置为“删除”: Content-Base Content-Disposition Server Content-Language Cache-Control Expires Content-Type - 目前不支持添加/删除/编辑以下标准头部信息: Origin accept-ch clear-site-data push-policy WsTag Tcp-Retrans access-control-allow-methods access-control-max-age Vary Date X-Forward-Type width Age ETag Purge-Extra X-Cacheable access-control-allow-headers Front-End-Https ping-to content-range cross-origin-opener-policy Location viewport-width Mime-Version Proxy-Support X-Resp-Time If-Range sec-fetch-dest device-memory X-Mem-Url Cdn-Src-Ip ping-from Allow X-Url-Blackwhite-List early-data Sec-WebSocket-Extensions if-unmodified-since X-Forward-Uri Conf-File x-download-options X-Error-Status Negotiate x-permitted-cross-domain-policies service-worker-allowed X-Appa x-firefox-spdy content-dpr X-Miss-Times-Limit X-Bwctrl-Limit X-Bwctrl-Para X-Max-Conns nel public-key-pins-report-only X-MAA-Alias Sec-WebSocket-Location X-Cache-2 Authorization Expect last-event-id Sec-WebSocket-Key X-Refresh-Pattern forwarded X-Local-Ip Sec-WebSocket-Protocol feature-policy cross-origin-resource-policy Request-Range Conf-Other strict-transport-security signed-headers Cdn-Server-Ip Sec-WebSocket-Version accept X-Black-List content-location sourcemap Partition-Block-Size Proxy-Authentication-Info cross-origin-embedder-policy X-Request-Id x-dns-prefetch-control if-none-match If-Non-Match Public X-White-List x-ua-compatible Keep-Alive Transfer-Encoding alt-svc max-age Last-Modified x-xss-protection Sec-WebSocket-Nonce dnt Link x-robots-tag Key expect-ct sec-fetch-site access-control-request-headers X-Error-URL X-Log-Url content-encoding X-Times-Limit X-Appa-Origin X-Miss-Rate-Limit X-IP-Region Dynamic X-Squid-Error From accept-ch-lifetime X-MAA-Auth Connection X-Via-CDN Max-Forwards Upgrade sec-fetch-user content-security-policy-report-only Pragma save-data X-Client-Ip Cdn-Qos x-powered-by X-Forward-Measured accept-push-policy server large-allocation X-Request-Uri X-Forward-Ip Host Proxy-Authenticate X-Request-Url X-Cache-Lookup Conf-Option X-Forward-Host upgrade-insecure-requests X-Accelerator-Vary signature X-Ip-Blackwhite-List X-Cdn-Src-Port Sec-WebSocket-Draft Sec-WebSocket-Origin X-IP-Region-CN public-key-pins Ws-Hdr If-Match Proxy-Authorization X-Rate-Limit sec-fetch-mode trailer X-Rewrite-Url Via X-Cache X-Mgr-Traffic accept-signature Warning dpr If-Modified-Since Authentication-Info access-control-request-method Content-Length x-frame-options(xfo) Range A_Dynamic te x-forwarded-host Title WWW-Authenticate tk X-Query-Key accept-charset access-control-allow-origin accept-ranges report-to access-control-expose-headers x-content-type-options Proxy-Connection server-timing Retry-After x-requested-with X-No-Referer X-Forward-Peer Sec-WebSocket-Accept X-Forwarded-For Conf-Err-Host Sec-WebSocket-Key2 access-control-allow-credentials X-Denyattack-Dynconf referer-policy Sec-WebSocket-Key1 content-security-policy timing-allow-origin X-DNS-Time Conf-File-List X-expireURL x-pingback Purge-Domain - - -
  • 背景信息 远程鉴权功能类似URL鉴权,区别如下: URL鉴权:鉴权由CDN节点完成。 远程鉴权:CDN节点转发用户请求到您指定的鉴权服务器,由鉴权服务器完成鉴权功能。 远程鉴权用户请求流程如下: 图1 远程鉴权流程 表1 步骤说明 步骤 说明 ① 用户携带鉴权参数访问CDN节点。 原始请求URL:https://example.com/folder01/test.txt?key=***。 原始请求中携带Header:test=123 ② CDN将用户请求转发至远程鉴权服务器。 ③ 远程鉴权服务器完成鉴权操作,给CDN节点返回响应状态码。 ④ CDN节点根据接收到的状态码判断是否给用户返回所请求的资源。
  • 限制条件 如果您的后台存在特殊配置,暂不支持配置Content-Type、Expires、Cache-Control、Vary。 以下响应头仅支持修改响应头,不支持将“响应头操作”类型设置为“删除”: Content-Base Content-Type Server Content-Language Cache-Control Expires CDN暂不支持以下响应头配置: A_Dynamic If-None-Match Sec-WebSocket-Origin X-Forward-Peer Accept-Ranges If-Range Sec-WebSocket-Protocol X-Forward-Type X-Forward-Ip Keep-Alive Sec-WebSocket-Version X-Forward-Uri Allow Key Set-Cookie X-Forwarded-For Authentication-Info Last-Modified Tcp-Retrans X-IP-Region Authorization Link Title X-IP-Region-CN X-Forward-Measured Location Transfer-Encoding X-Ip-Blackwhite-List Cdn-Qos Max-Forwards Upgrade X-Local-Ip Cdn-Server-Ip Meter Sec-WebSocket-Location X-Log-Url Cdn-Src-Ip Mime-Version Via X-MAA-Alias Conf-Err-Host Negotiate WWW-Authenticate X-MAA-Auth Conf-File Origin Warning X-Max-Conns Conf-File-List Partition-Block-Size Ws-Hdr X-Mem-Url Conf-Option Pragma WsTag X-Mgr-Traffic Conf-Other Proxy-Authenticate X-Accelerator-Vary X-Miss-Rate-Limit Connection Proxy-Authentication-Info X-Appa X-Miss-Times-Limit Content-Encoding Proxy-Authorization X-Appa-Origin X-No-Referer Content-Length Proxy-Connection X-Black-List X-Query-Key Content-Location Proxy-Support X-Bwctrl-Limit X-Rate-Limit Content-MD5 Public X-Bwctrl-Para X-Refresh-Pattern Content-Range Purge-Domain X-Cache X-Request-Id Sec-WebSocket-Nonce Purge-Extra X-Cache-2 X-Request-Uri Date Range X-Cache-Lookup X-Request-Url Dynamic Request-Range X-Cacheable X-Resp-Time ETag Retry-After X-Cdn-Src-Port X-Rewrite-Url Error Sec-WebSocket-Accept X-Client-Ip X-Squid-Error Expect Sec-WebSocket-Draft X-DNS-Time X-Times-Limit If-Modified-Since Sec-WebSocket-Extensions X-Denyattack-Dynconf X-Url-Blackwhite-List From Sec-WebSocket-Key X-Error-Status X-Via-CDN Front-End-Https Sec-WebSocket-Key1 X-Error-URL X-White-List Host Sec-WebSocket-Key2 X-Forward-Host If-Match
  • 注意事项 部分头部不支持自助设置/删除,具体清单请参见限制条件。 HTTP响应头配置规则最多可配置10条。 由于HTTP header配置是针对 域名 ,因此一旦配置生效,用户对该域名下任意一个资源的响应消息中均会加入所配置的消息头。HTTP响应消息头配置仅会影响客户端(浏览器)的响应行为,不影响CDN节点的缓存行为。 如果您的域名源站是OBS桶域名且CDN配置了跨域规则,OBS侧也需要同时配置跨域资源共享。
  • 支持配置的响应头 华为云CDN支持以下几种HTTP响应消息头进行自定义取值。 Content-Disposition Content-disposition消息头用来激活客户端下载并指定所下载文件的名称。 服务端向客户端浏览器发送的文件,如果是浏览器支持的文件类型(如txt、jpg等),则默认使用浏览器打开。如果该文件需要用户以附件形式下载并保存为指定名称的文件,则可通过配置Content-disposition消息头实现。 如果您使用了2022年1月1日以后创建的OBS桶作为源站,并且需要支持在线预览功能,您要设置“Content-Disposition”的值为“inline”,详见如何在浏览器中在线预览OBS中的对象?。 Content-Language Content-Language消息头用来指明向客户页面端提供的用户偏好语言或语言组合,可以为不同身份用户定制不同的内容。 Access-Control-Allow-Origin Access-Control-Allow-Origin响应头携带了服务端验证后允许的跨域请求域名。对于简单跨域请求而言,浏览器经此消息头可以确认是否返回所请求的资源内容给客户端。对于预检请求而言,浏览器经此消息头可以确认是否可以向服务端发起真正的跨域请求。 为防止因浏览器缓存导致报跨域错误,跨域请求头“Access-Control-Allow-Origin”配置完成后,请您及时清理浏览器缓存。 Access-Control-Allow-Methods Access-Control-Allow-Methods响应头携带了服务端验证后允许的跨域请求方法。对于简单跨域请求而言,浏览器经此消息头可以确认是否返回所请求的资源内容给客户端。对于预检请求而言,浏览器经此消息头可以确认是否可以向服务端发起真正的跨域请求。 Access-Control-Max-Age Access-Control-Max-Age响应头携带了服务端允许的跨域预检请求结果允许缓存的时间。浏览器经此消息头可以确认预检请求结果的缓存时间,在缓存有效期内,浏览器可以使用缓存的预检请求结果判断是否向服务端发起跨域请求。缓存的预检请求结果过期后,下次请求时浏览器需再次向服务端发送预检请求。 Access-Control-Expose-Headers Access-Control-Expose-Headers用于指定浏览器可以暴露给客户端的响应消息头。您可以通过配置Access-Control-Expose-Headers自定义客户端可见的响应消息头。浏览器默认客户端可见的响应头有:Cache-Control、Content-Language、Content-Type、Expires、Last-Modified、Pragma。 自定义响应头 如果上述响应头不能满足您的业务需求,CDN支持自定义响应头配置,支持以字母开头,字母、数字和短横杠(-)组合,长度1~100以内的自定义响应头名称。
  • 日志说明 日志文件延迟时间:日志时延一般不超过24小时,偶尔会出现时延超过24小时的情况,建议您24小时后下载日志。 由于日志系统同步有时延,域名接入CDN后第一个小时可能无法生成用户访问日志,如果您需要查看该时间段的日志,请提交工单申请。 日志命名规则:周期开始时刻-加速域名-拓展字段.gz,如“2018021123-www.example01.com-xx.gz”。 日志生成规则:每个加速域名的日志默认按小时分割,每天 24 个日志文件。因文件打包有大小限制,如果一个周期内产生的日志文件超过打包限制,该时段的日志会分割成多个文件,此时每个日志文件的名称会通过扩展字段区分。 日志内容示例: [05/Feb/2018:07:54:52 +0800] x.x.x.x 1 "-" "HTTP/1.1" "GET" "www.test.com" "/test/1234.apk" 206 720 HIT "Mozilla/5.0 (Linux; U; Android 6.0; zh-cn; EVA-AL10 Build/HUAWEIEVA-AL10) AppleWebKit/533.1 (KHTML,like Gecko) Mobile Safari/533.1" "bytes=-256" x.x.x.x 各字段从左到右含义如表1所示。 表1 CDN日志字段说明 序号 字段含义 字段示例 1 日志生成时间 [05/Feb/2018:07:54:52 +0800] 2 访问IP地址 x.x.x.x 3 响应时间(单位ms) 1 4 Referer信息 - 5 HTTP协议标识 HTTP/1.1 6 HTTP请求方式 GET 7 CDN加速 域名 www.test.com 8 请求路径(不含URL参数) /test/1234.apk 9 HTTP状态码 206 10 返回字节数大小 720 11 缓存命中状态 HIT 12 User-Agent信息,其作用是让服务器能够识别客户使用的操作系统及版本、CPU类型、浏览器及版本信息等。 Mozilla/5.0 (Linux; U; Android 6.0; zh-cn; EVA-AL10 Build/HUAWEIEVA-AL10) AppleWebKit/533.1 (KHTML,like Gecko) Mobile Safari/533.1 13 Range信息,其作用是在HTTP请求头中指定返回数据的范围,即第一个字节的位置和最后一个字节的位置。 bytes参数值表示方法一般分为如下三类: bytes=x-y:表示请求第x个字节到第y个字节的数据内容。 bytes=-y:表示请求最后y个字节的数据内容。 bytes=x-:表示请求第x字节到最后一个字节的数据内容。 bytes=-256 14 服务端IP:CDN服务端响应IP(本字段计划于2024年7月下旬上线)。 x.x.x.x
  • 背景介绍 Etag是URL的Entity Tag,用于标示URL对象是否改变。 域名接入CDN加速后,客户端首次访问时CDN节点会回源请求数据返回给用户,同时将资源缓存到CDN节点。在设置的缓存过期时间内,当用户再次请求资源时,CDN会将节点缓存的资源返回给客户端,不需要回源。当CDN节点缓存的资源过期后: 开启“回源是否校验ETag”:客户端再次请求该资源时,CDN会校验ETag值。如果ETag、Last-Modified和Content-Length值都没有变化,CDN将继续返回给用户节点缓存的资源,无需回源,降低回源率,减轻源站压力;如果ETag、Last-Modified和Content-Length其中一个值改变,CDN节点都会回源。 未开启“回源是否校验ETag”:客户端再次请求该资源时,CDN不会校验ETag值。如果Last-Modified和Content-Length的值都没有变化,CDN将继续返回给用户节点缓存的资源;如果Last-Modified和Content-Length其中一个值改变,CDN节点都会回源。
  • 注意事项 CDN默认开启“回源是否校验ETag”。 业务类型为全站加速的域名不支持配置回源是否校验ETag。 如果加速域名开启了Range回源,CDN节点回源时获取到资源不同分片的Last-Modified值不一致,CDN将会判定资源发生变化 ,为避免将错误的资源返回给客户端 ,CDN会中断连接 ,客户端访问也将中断。如果遇到类似问题,请根据业务情况选择以下措施规避: 关闭Range回源。 如果资源存放在不同的源站,请将资源迁移到同一个源站。 回源时不校验Last-Modified的值,如需关闭校验,请提交工单申请。
  • 校验方法 CDN服务器拿到请求后,会按照如下步骤进行校验: 是否携带鉴权参数。如果没有携带鉴权参数,认为请求非法,返回HTTP 403错误。 时间校验:CDN服务器接收到客户端请求后,判断鉴权URL中的“timestamp参数 + 鉴权URL有效时长”是否大于当前时间。 如果“timestamp参数 + 鉴权URL有效时长”小于当前时间,认为过期失效并返回HTTP 403错误。 如果“timestamp参数 + 鉴权URL有效时长”大于或等于当前时间,则通过时间校验,继续执行步骤3。 加密串校验:时间校验通过后,则以sstring方式构造出一个字符串(参考以下sstring构造方式)。然后使用md5(sha256)算法算出HashValue,并和用户请求中带来的md5hash(sha256)进行对比。结果一致则认为鉴权通过并返回文件,否则鉴权失败返回HTTP 403错误。HashValue计算方式如下: sstring = “PrivateKeytimestampFilename” HashValue = sha256sum(sstring) 或: sstring = “PrivateKeytimestampFilename” HashValue = md5sum(sstring)
  • 示例说明 以使用MD5算法为例: 回源请求对象: http://hwcdn.example.com/T128_2_1_0_sdk/0210/M00/82/3E/test.mp3 密钥设为:huaweicloud12345(用户自行设置) 用户访问客户源服务器时间为:201706301000(格式为:YYYYMMDDHHMM) CDN服务器构造一个用于计算md5hash的签名字符串: huaweicloud12345201706301000/T128_2_1_0_sdk/0210/M00/82/3E/test.mp3 CDN服务器根据该签名字符串计算md5hash: md5hash = md5sum("huaweicloud12345201706301000/T128_2_1_0_sdk/0210/M00/82/3E/test.mp3") =668f28d134ec6446a8ae83a43d0a554b 请求CDN时URL: http://hwcdn.example.com/201706301000/668f28d134ec6446a8ae83a43d0a554b/T128_2_1_0_sdk/0210/M00/82/3E/test.mp3 如果请求在有效时间内(请求时间小于等于2017年6月30日10:30:00),并且计算出来的md5hash与用户请求中带的md5hash值(668f28d134ec6446a8ae83a43d0a554b)一致,则鉴权通过。
  • 校验方法 CDN服务器拿到请求后,会按照如下步骤进行校验: 是否携带鉴权参数。如果没有携带鉴权参数,认为请求非法,返回HTTP 403错误。 时间校验:CDN服务器接收到客户端请求后,判断鉴权URL中的“timestamp参数 + 鉴权URL有效时长”是否大于当前时间。 如果“timestamp参数 + 鉴权URL有效时长”小于当前时间,认为过期失效并返回HTTP 403错误。 如果“timestamp参数 + 鉴权URL有效时长”大于或等于当前时间,则通过时间校验,继续执行步骤3。 加密串校验:时间校验通过后,则以sstring方式构造出一个字符串(参考以下sstring构造方式)。然后使用md5(sha256)算法算出HashValue,并和用户请求中带来的md5hash(sha256)进行对比。结果一致则认为鉴权通过并返回文件,否则鉴权失败返回HTTP 403错误。HashValue计算方式如下: sstring = "PrivateKeyFilenameTimestamp" HashValue = md5sum(sstring) 或: sstring = "PrivateKeyFilenameTimestamp" HashValue = sha256sum(sstring)
  • 示例说明 以使用MD5算法为例: 回源请求对象: http://hwcdn.example.com/T128_2_1_0_sdk/0210/M00/82/3E/test.mp3 密钥设为:huaweicloud12345(用户自行设置) 鉴权生效开始日期为:2017年6月30日10:00:00,计算出来的秒数为1498788000,并转换为十六进制为5955b0a0。并且设置有效时间为1800s。 CDN服务器构造一个用于计算md5hash的签名字符串: huaweicloud12345/T128_2_1_0_sdk/0210/M00/82/3E/test.mp35955b0a0 CDN服务器根据该签名字符串计算md5hash: md5hash = md5sum(huaweicloud12345/T128_2_1_0_sdk/0210/M00/82/3E/test.mp35955b0a0) = 8540f43a2416fd4a432fe4f92d2ea089 请求CDN时URL: http://hwcdn.example.com/T128_2_1_0_sdk/0210/M00/82/3E/test.mp3?auth_key=8540f43a2416fd4a432fe4f92d2ea089×tamp=5955b0a0 如果请求在有效时间内(请求时间小于等于2017年6月30日10:30:00),并且计算出来的md5hash与用户请求中带的md5hash值(8540f43a2416fd4a432fe4f92d2ea089)一致,则鉴权通过。
  • 示例说明 以使用MD5算法为例: 通过req_auth请求对象: http://hwcdn.example.com/T128_2_1_0_sdk/0210/M00/82/3E/test.mp3 密钥设为:huaweicloud12345(由用户自行设置) 鉴权生效开始日期为:2017年6月30日00:00:00,计算出来的秒数为1498752000。并且设置有效时间为1800s。 CDN服务器构造一个用于计算HashValue的签名字符串: /T128_2_1_0_sdk/0210/M00/82/3E/test.mp3-1498752000-0-0-huaweicloud12345 CDN服务器根据该签名字符串计算HashValue: HashValue = md5sum(“/T128_2_1_0_sdk/0210/M00/82/3E/test.mp3-1498752000-0-0-huaweicloud12345”) =4143ae4a8034c637fd256dfd3542bafc 请求时URL为: http://cdn.example.com/T128_2_1_0_sdk/0210/M00/82/3E/test.mp3?auth_key=1498752000-0-0-4143ae4a8034c637fd256dfd3542bafc 如果请求在有效时间内(请求时间小于等于2017年6月30日00:30:00),并且计算出来的HashValue与用户请求中带的md5hash值(4143ae4a8034c637fd256dfd3542bafc)一致,则鉴权通过。
  • 校验方法 CDN服务器拿到请求后,会按照如下步骤进行校验: 是否携带鉴权参数。如果没有携带鉴权参数,认为请求非法,返回HTTP 403错误。 时间校验:CDN服务器接收到客户端请求后,判断鉴权URL中的“timestamp参数 + 鉴权URL有效时长”是否大于当前时间。 如果“timestamp参数 + 鉴权URL有效时长”小于当前时间,认为过期失效并返回HTTP 403错误。 如果“timestamp参数 + 鉴权URL有效时长”大于或等于当前时间,则通过时间校验,继续执行步骤3。 加密串校验:时间校验通过后,则以sstring方式构造出一个字符串(参考以下sstring构造方式)。然后使用md5(sha256)算法算出HashValue,并和用户请求中带来的md5hash(sha256)进行对比。结果一致则认为鉴权通过并返回文件,否则鉴权失败返回HTTP 403错误。HashValue计算方式如下: sstring = "Filename-Timestamp-rand-uid-PrivateKey" HashValue = md5sum(sstring) 或: sstring = "Filename-Timestamp-rand-uid-PrivateKey" HashValue = sha256sum(sstring)
  • 示例说明 以使用MD5算法为例: 回源请求对象: http://hwcdn.example.com/T128_2_1_0_sdk/0210/M00/82/3E/test.mp3 密钥设为:huaweicloud12345(用户自行设置) 鉴权生效开始日期为:2017年6月30日10:00:00,计算出来的秒数为1498788000,并转换为十六进制为5955b0a0。并且设置有效时间为1800s。 CDN服务器构造一个用于计算md5hash的签名字符串: huaweicloud12345/T128_2_1_0_sdk/0210/M00/82/3E/test.mp35955b0a0 CDN服务器根据该签名字符串计算md5hash: md5hash = md5sum(huaweicloud12345/T128_2_1_0_sdk/0210/M00/82/3E/test.mp35955b0a0) = 8540f43a2416fd4a432fe4f92d2ea089 请求CDN时URL: http://hwcdn.example.com/8540f43a2416fd4a432fe4f92d2ea089/5955b0a0/T128_2_1_0_sdk/0210/M00/82/3E/test.mp3 如果请求在有效时间内(请求时间小于等于2017年6月30日10:30:00),并且计算出来的md5hash与用户请求中带的md5hash值(8540f43a2416fd4a432fe4f92d2ea089)一致,则鉴权通过。