開啟私有OSS Bucket回源后,訪問域名提示“You are forbidden to list buckets”錯(cuò)誤
更新時(shí)間:
您通過CDN對(duì)OSS存儲(chǔ)上的靜態(tài)資源做分發(fā)加速時(shí),同時(shí)希望在開啟CDN私有Bucket的情況下,使用OSS的靜態(tài)網(wǎng)站托管。通過本文,為您解決該情況下的訪問報(bào)錯(cuò)問題。
背景信息
- OSS的靜態(tài)網(wǎng)站托管功能:靜態(tài)網(wǎng)站托管概述。
- OSS私有Bucket回源功能:OSS私有Bucket回源。
問題現(xiàn)象
OSS Bucket權(quán)限設(shè)置為私有、開啟靜態(tài)網(wǎng)站托管功能且CDN開啟OSS私有Bucket回源。
用戶訪問
https://example.com/
,希望能夠訪問網(wǎng)站首頁https://example.com/index.html
,但是CDN節(jié)點(diǎn)會(huì)給用戶返回403 Forbidden
并提示You don't have permission to access the URL on this server.
。查看瀏覽器調(diào)試信息可以看到響應(yīng)信息x-tengine-error: You are forbidden to list buckets
。問題原因
CDN的私有Bucket回源功能和OSS靜態(tài)網(wǎng)站托管功能的默認(rèn)首頁配置沖突。
說明 OSS的Bucket在配置靜態(tài)網(wǎng)站托管的時(shí)候,需要配置域名的默認(rèn)首頁為指定文件,例如
index.html
,使用匿名身份訪問網(wǎng)站域名(例如:https://example.com/
)的時(shí)候會(huì)自動(dòng)解析到默認(rèn)首頁(例如:https://example.com/index.html
)。但是CDN開啟OSS私有Bucket回源功能后,訪問CDN加速域名產(chǎn)生的回源OSS請(qǐng)求相當(dāng)于非匿名身份發(fā)起的根目錄訪問請(qǐng)求,而該請(qǐng)求默認(rèn)會(huì)被CDN拒絕,導(dǎo)致用戶訪問被拒絕而出現(xiàn)“You are forbidden to list buckets”報(bào)錯(cuò)。解決方案
- 方案一:如果您不需要使用OSS的靜態(tài)網(wǎng)站托管功能,關(guān)閉OSS的靜態(tài)網(wǎng)站托管功能即可。具體方法,請(qǐng)參見靜態(tài)網(wǎng)站托管概述刪除靜態(tài)網(wǎng)站托管配置。
- 方案二:如果您需要使用OSS的靜態(tài)網(wǎng)站托管功能,那么在開啟OSS的靜態(tài)網(wǎng)站托管功能后,您需要在CDN中配置URI重寫規(guī)則,避免出現(xiàn)CDN回源訪問根目錄的情況。
配置方法:待重寫的Path配置為支持根目錄訪問的
^/$
,目標(biāo)Path配置為/index.html
,執(zhí)行規(guī)則選擇Redirect。配置完成后,當(dāng)客戶端請(qǐng)求www.example.com/
時(shí),CDN節(jié)點(diǎn)將返回302讓客戶端重新請(qǐng)求www.example.com/index.html
的內(nèi)容。具體步驟,請(qǐng)參見配置訪問URL改寫規(guī)則。
文檔內(nèi)容是否對(duì)您有幫助?