回源301/302跟隨功能同時支持源站的301和302響應狀態碼,本文中所有302狀態碼可以實現的功能,301狀態碼也同樣支持。配置回源301/302跟隨功能后,CDN節點會代替用戶直接處理源站響應的301/302狀態碼的內容,減少數據交互流程,加快用戶獲取資源的速度。
前提條件
用戶源站使用了301/302重定向方式去實現業務邏輯。
背景信息
301/302是HTTP協議中的一個狀態碼,代表已存在的資源被臨時改變了位置,導致用戶無法訪問到對應的資源。基于此情況,服務器通常會在消息響應頭中加入Location參數,當客戶端接收到帶有Location頭的301/302響應時,會跳轉到Location對應的地址去請求資源。
工作原理
回源301/302跟隨功能指CDN節點回源請求資源時,如果收到源站返回的301/302狀態碼,將由CDN節點代替用戶直接處理301/302狀態碼的內容,即直接跳轉到源站301/302響應中的Location地址去獲取資源,不會直接返回301/302狀態碼給用戶。
用戶向CDN節點請求訪問
http://example.com/examplefile.txt
文件。CDN節點上未緩存該文件,CDN節點回源站請求該文件。
源站收到請求后,向CDN節點返回301/302狀態碼,Location地址指向
http://www.example.org/examplefile.txt
。CDN節點收到源站的響應后,直接向Location地址
http://www.example.org/examplefile.txt
發起請求。CDN節點獲取到所需資源后,緩存到CDN節點上。
CDN節點將獲取到的資源返回給用戶。
此時,如果其他用戶再請求訪問http://example.com/examplefile.txt
文件,會直接在CDN節點命中緩存并返回給用戶。
注意事項
配置回源301/302跟隨之前,請先確認CDN是否配置了默認回源HOST或者指定源站回源HOST:
加速域名既沒有配置默認回源HOST,也沒有配置指定源站回源HOST:當源站響應“301/302狀態碼+Location URL”給CDN節點時,加速域名回源請求Location URL攜帶的HOST頭是源站響應的301/302信息里面的Location域名。
加速域名配置了默認回源HOST:當源站響應“301/302狀態碼+Location URL”給CDN節點時,加速域名回源請求Location URL攜帶的HOST頭是CDN上給加速域名配置的HOST頭;如果客戶源站的Location URL要求回源HOST必須使用Location域名,這時候訪問結果就不符合預期,如果客戶有該場景需求,需要使用指定源站回源HOST功能來配置。
源站響應給CDN節點的Location頭部的格式支持以下3種:
Location:
http://www.example.net/index.html
,CDN節點的跟隨請求將會使用Location中的完整URL。Location:
//www.example.net/index.htmL
,CDN節點的跟隨請求將會使用302前的回源協議加上Location里面的信息來拼接成一個URL。Location:
/index.html
,CDN節點的跟隨請求將會使用302前的回源協議和域名加上Location里面的信息來拼接成一個URL。
操作步驟
- 登錄CDN控制臺。
- 在左側導航欄,單擊域名管理。
- 在域名管理頁面,單擊目標域名對應的管理。
在指定域名的左側導航欄,單擊回源配置。
在配置頁簽,找到回源301/302跟隨。
打開回源301/302跟隨開關。
配置回源301/302跟隨。
參數
描述
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節點為未緩存,返回源站請求資源(保留原請求參數和請求頭),源站收到請求后,向CDN節點返回301/302狀態碼,并給出重定向地址為http://www.example.org/examplefile.txt
。
CDN節點收到301/302狀態碼后,直接向重定向地址發起請求(301/302跟隨次數上限設置為2,表示可以請求兩次,請求失敗后返回301/302狀態碼給用戶)。
CDN節點獲取資源,返回給用戶,并緩存至CDN節點。
其他用戶再請求
http://example.com/examplefile.txt
文件,CDN直接將已緩存資源返回給用戶。