訪問(wèn)CDN加速資源返回403狀態(tài)碼
概述
CDN訪問(wèn)出現(xiàn)403狀態(tài)碼通常情況下可能是由以下幾種情況導(dǎo)致的,在排查問(wèn)題時(shí)可以打開(kāi)瀏覽器開(kāi)發(fā)者模式,切換到Network標(biāo)簽頁(yè)后,重新請(qǐng)求異常的URL,復(fù)現(xiàn)403的問(wèn)題,然后在Headers下查看CDN返回的Response Header,通過(guò)這個(gè)信息可以判斷是什么原因引起的403錯(cuò)誤。本文會(huì)對(duì)這些情況進(jìn)行具體介紹。
詳細(xì)信息
加速域名未添加到CDN
當(dāng)您在CDN上添加了aliyundoc.com
主域名,且對(duì)應(yīng)的CNAME為aliyundoc.com.w.alikunlun.com
時(shí),您其他的二級(jí)域名,例如example.aliyundoc.com
、demo.aliyundoc.com
并沒(méi)有添加到CDN,但是卻直接將這些二級(jí)域名解析到aliyundoc.com.w.alikunlun.com
,這種情況下會(huì)導(dǎo)致CDN響應(yīng)403,具體報(bào)錯(cuò)如下。
X-Tengine-Bf-Error: non-existent domain
CDN鑒權(quán)問(wèn)題
CDN鑒權(quán)問(wèn)題通常表現(xiàn)在沒(méi)有攜帶鑒權(quán)參數(shù)、鑒權(quán)過(guò)期、鑒權(quán)計(jì)算錯(cuò)誤,需要根據(jù)URL鑒權(quán)的文檔了解鑒權(quán)的原理然后去進(jìn)一步排查和解決。
- 常見(jiàn)的鑒權(quán)問(wèn)題如下:
- 沒(méi)有攜帶鑒權(quán)參數(shù):CDN開(kāi)啟了鑒權(quán),但是實(shí)際訪問(wèn)URL中沒(méi)有攜帶鑒權(quán)參數(shù),導(dǎo)致出現(xiàn)如下報(bào)錯(cuò)。
X-Tengine-Error:denied by req auth: no url arg auth_key
- 鑒權(quán)過(guò)期:CDN開(kāi)啟了鑒權(quán),并且URL攜帶了鑒權(quán)參數(shù),但是鑒權(quán)參數(shù)過(guò)期。
X-Tengine-Error: denied by req auth: expired timestamp
- 鑒權(quán)計(jì)算錯(cuò)誤:鑒權(quán)參數(shù)的MD5值計(jì)算不正確。
X-Tengine-Error: denied by req auth: invalid md5hash
- 沒(méi)有攜帶鑒權(quán)參數(shù):CDN開(kāi)啟了鑒權(quán),但是實(shí)際訪問(wèn)URL中沒(méi)有攜帶鑒權(quán)參數(shù),導(dǎo)致出現(xiàn)如下報(bào)錯(cuò)。
- 解決方案:
- 沒(méi)有攜帶鑒權(quán)參數(shù)
如果您不需要CDN的鑒權(quán)功能,登錄CDN控制臺(tái),關(guān)閉鑒權(quán)即可。 - 鑒權(quán)過(guò)期
如果鑒權(quán)過(guò)期,請(qǐng)重新生成鑒權(quán)URL。 - 鑒權(quán)計(jì)算錯(cuò)誤
如果鑒權(quán)的MD5計(jì)算不正確,建議先使用CDN控制臺(tái)的地址生成器生成URL來(lái)對(duì)比自己的鑒權(quán)代碼,或者參見(jiàn)鑒權(quán)示例代碼。
- 沒(méi)有攜帶鑒權(quán)參數(shù)
防盜鏈問(wèn)題
開(kāi)啟了防盜鏈功能,但是實(shí)際Request Headers請(qǐng)求頭中的Referer頭不符合防盜鏈規(guī)則導(dǎo)致出現(xiàn)403。而防盜鏈問(wèn)題導(dǎo)致的403,在CDN的Response headers中的X-Tengine-Error會(huì)返回denied by Referer ACL。具體防盜鏈問(wèn)題請(qǐng)參見(jiàn)由于防盜鏈異常導(dǎo)致訪問(wèn)CDN返回403錯(cuò)誤的解決方法。
X-Tengine-Error: denied by Referer ACL
IP黑白名單問(wèn)題
在CDN控制臺(tái)配置了IP黑白名單,實(shí)際訪問(wèn)的IP不符合配置規(guī)則,導(dǎo)致出現(xiàn)403。
- IP黑白名單問(wèn)題現(xiàn)象
- 配置了IP白名單,但是實(shí)際訪問(wèn)的客戶端IP不在IP白名單里,導(dǎo)致出現(xiàn)403,具體報(bào)錯(cuò)如下。
X-Tengine-Error: denied by IP ACL = not in whitelist
- 配置了IP黑名單,且實(shí)際訪問(wèn)的客戶端IP在IP黑名單里,導(dǎo)致出現(xiàn)403,具體報(bào)錯(cuò)如下。
X-Tengine-Error: denied by IP ACL = blacklist
- 配置了IP白名單,但是實(shí)際訪問(wèn)的客戶端IP不在IP白名單里,導(dǎo)致出現(xiàn)403,具體報(bào)錯(cuò)如下。
- 根據(jù)對(duì)應(yīng)的問(wèn)題修改IP黑白名單配置,詳情請(qǐng)參見(jiàn)配置IP黑白名單。
UA黑白名單問(wèn)題
- 配置了UA黑名單,客戶端UA命中了黑名單規(guī)則,報(bào)錯(cuò)如下。
X-Tengine-Error: black ua
- 配置了UA白名單,客戶端UA不在UA白名單列表里,報(bào)錯(cuò)如下。
X-Tengine-Error: not in white ua
URL違規(guī)被屏蔽
出現(xiàn)403的URL涉及違法不良信息,違反了相關(guān)服務(wù)協(xié)議和互聯(lián)網(wǎng)信息服務(wù)管理辦法第十五條規(guī)定,這種情況下違法URL會(huì)被CDN做屏蔽訪問(wèn)處理。通常這種情況會(huì)收到郵件或短信通知,請(qǐng)您確保CDN加速的內(nèi)容是合法內(nèi)容,確認(rèn)是合法內(nèi)容后填寫信息申請(qǐng)解封。以下兩個(gè)報(bào)錯(cuò)均是URL違規(guī)導(dǎo)致的。
x-swift-error:request hit url black list
x-tengine-ban-error: global ban hit
源站響應(yīng)403
源站響應(yīng)了403給CDN,CDN再把403響應(yīng)給客戶端。源站響應(yīng)的403會(huì)報(bào)錯(cuò)如下。
X-Swift-Error: orig response 4XX error
- 源站是用戶服務(wù)器
可以綁定Host到源站訪問(wèn)測(cè)試是否一樣存在403的情況,如果源站就有403的情況,需要先解決源站的403問(wèn)題。另外還有一點(diǎn)需要注意,CDN的回源Host配置錯(cuò)誤也可能導(dǎo)致403錯(cuò)誤。回源HOST跟源站的區(qū)別就是,源站決定了回源時(shí)請(qǐng)求到的具體IP地址,而回源HOST決定了回源請(qǐng)求訪問(wèn)到該IP地址上的具體站點(diǎn)。 - 源站是阿里云OSS
問(wèn)題描述 解決方法 如果源Bucket的訪問(wèn)權(quán)限是私有權(quán)限,但是訪問(wèn)URL里沒(méi)有帶上OSS的私有簽名參數(shù)(Signature、Expires、OSSAccessKeyId),就會(huì)導(dǎo)致CDN回源請(qǐng)求OSS的時(shí)候通不過(guò)OSS的鑒權(quán)導(dǎo)致403,報(bào)錯(cuò)如下。
You have no right to access this object because of bucket acl
出現(xiàn)該問(wèn)題時(shí),建議開(kāi)啟CDN的OSS私有Bucket回源授權(quán),詳情請(qǐng)參見(jiàn)阿里云OSS私有Bucket回源授權(quán)。
如果出現(xiàn)如下錯(cuò)誤,說(shuō)明是OSS防盜鏈鑒權(quán)返回的403,則需要檢查OSS的防盜鏈設(shè)置。
You are denied by bucket referer policy
修改OSS的防盜鏈配置,詳情請(qǐng)參見(jiàn)設(shè)置防盜鏈。
如果出現(xiàn)如下錯(cuò)誤,說(shuō)明是開(kāi)啟私有Bucket回源授權(quán)的情況下訪問(wèn)了OSS的靜態(tài)首頁(yè),目前CDN的私有Bucket回源功能和OSS的靜態(tài)網(wǎng)站托管功能沖突,無(wú)法一起使用。
You are forbidden to list buckets
您可以根據(jù)實(shí)際情況選擇以下一種解決方法進(jìn)行處理:
- 關(guān)閉阿里云OSS私有Bucket回源授權(quán),詳情請(qǐng)參見(jiàn)關(guān)閉私有Bucket回源授權(quán)。
- 關(guān)閉OSS的靜態(tài)網(wǎng)站托管功能,詳情請(qǐng)參見(jiàn)靜態(tài)網(wǎng)站托管,刪除靜態(tài)網(wǎng)站托管配置。
如果問(wèn)題還是無(wú)法解決,請(qǐng)參見(jiàn)售后問(wèn)題排查工具,在智能在線中輸入“CDN網(wǎng)站無(wú)法訪問(wèn)”或者“CDN服務(wù)診斷”,通過(guò)智能在線自動(dòng)識(shí)別常見(jiàn)問(wèn)題并快速解決。
適用于
- CDN