配置回源301/302跟随

回源301/302跟随功能同时支持源站的301302响应状态码,301302状态码均支持相同功能。配置该功能后,CDN节点会直接处理源站的301/302响应,减少数据交互流程,加快用户获取资源的速度。

前提条件

用户源站使用了301/302重定向方式去实现业务逻辑。

背景信息

301/302HTTP协议中的状态码,表示已存在的资源被临时改变了位置,导致用户无法访问到对应的资源。基于此情况,服务器通常会在响应头中加入Location参数,当客户端接收到带有Location头的301/302响应时,会跳转到Location对应的地址请求资源。

工作原理

回源301/302跟随功能指CDN节点在回源请求资源时,若收到源站返回的301/302状态码,CDN节点会直接跳转到Location地址获取资源,而不会将301/302状态码返回给用户。

image

  1. 用户请求访问http://example.com/examplefile.txt文件。

  2. CDN节点上未缓存该文件,回源请求。

  3. 源站返回301/302状态码,Location地址为http://www.example.org/examplefile.txt

  4. CDN节点收到源站的响应后,向Location地址http://www.example.org/examplefile.txt发起请求获取资源。

  5. CDN节点获取到所需资源后,缓存到CDN节点上。

  6. CDN节点将获取到的资源返回给用户。

此时,如果其他用户再请求访问http://example.com/examplefile.txt文件,会直接在CDN节点命中缓存并返回给用户。

注意事项

配置回源301/302跟随之前,请先确认CDN是否配置了默认回源HOST或者指定源站回源HOST

  • 未配置默认回源HOST或指定源站回源HOST:当源站响应“301/302状态码+Location URL”给CDN节点时,回源请求的HOST头将使用Location域名。

  • 配置了默认回源HOST:当源站响应“301/302状态码+Location URL”给CDN节点时,回源请求的HOST头将使用CDN配置的HOST头。如果源站要求使用Location域名作为回源HOST,请使用指定源站回源HOST功能。

源站响应给CDN节点的Location头部的格式支持以下3种:

  1. Location: http://www.example.net/index.htmlCDN节点将使用Location中的完整URL。

  2. Location: //www.example.net/index.htmLCDN节点将使用302前的回源协议加上Location中的信息拼接成一个URL。

  3. Location: /index.htmlCDN节点将使用302前的回源协议和域名加上Location中的信息拼接成一个URL。

操作步骤

  1. 登录CDN控制台

  2. 在左侧导航栏,单击域名管理

  3. 在域名列表中选择目标域名,单击操作列的管理

  4. 单击回源配置,在配置页签的回源301/302跟随区域打开开关。

    image

  5. 在弹出的对话框中配置相关参数,然后单击确定

    参数

    描述

    301/302跟随次数上限

    指在一次用户请求过程中,CDN节点可以跟随Location地址跳转访问的最大次数,超出限制将直接返回301/302状态码给用户。默认值为2,取值范围为1~5。

    说明

    配置301/302跟随次数上限,会影响回源次数上限。回源次数上限指在一次用户请求过程中,CDN节点可以回源访问源站的最大次数。

    回源次数上限=301/302跟随次数上限+1,即默认的回源次数上限为3,取值范围为2~6。

    301/302跟随保留参数

    • 保留:301/302跟随时保留原请求参数回目标源站。如果您选择保留,那么请求参数将会传递给Location地址对应的服务器。

    • 不保留:301/302跟随时不保留原请求参数回目标源站。

    301/302跟随保留请求头

    • 保留:301/302跟随时保留原请求头回目标源站。如果您选择保留,那么请求头参数将会传递给Location地址对应的服务器。

    • 不保留:301/302跟随时不保留原请求头回目标源站。

配置示例

配置场景:您源站的资源挪至其他地址,但您并不希望您的用户感知该变动,希望使用原有域名正常访问资源。

配置方式:域名example.com开启回源301/302跟随,配置如下:回源

结果说明:用户请求http://example.com/examplefile.txt文件,CDN节点未缓存时,向源站请求资源。源站返回301/302状态码和重定向地址http://www.example.org/examplefile.txt

  1. CDN节点收到301/302状态码后,向重定向地址发起请求(最多请求两次,失败后返回301/302状态码给用户)。

  2. CDN节点获取资源,返回给用户,并缓存至CDN节点。

  3. 其他用户再请求该文件时,CDN直接返回已缓存资源。