您通过ESA对OSS存储上的静态资源做分发加速时,同时希望在开启ESA私有Bucket的情况下,使用OSS的静态网站托管。通过本文,为您解决该情况下的访问报错问题。
背景信息
OSS的静态网站托管功能:静态网站托管概述。
OSS私有Bucket回源功能:OSS私有Bucket回源。
问题现象
OSS Bucket权限设置为私有、开启静态网站托管功能且ESA开启OSS私有Bucket回源。
用户访问https://example.com/
,希望能够访问网站首页https://example.com/index.html
,但是ESA节点会给用户返回403 Forbidden
并提示You don't have permission to access the URL on this server.
。查看浏览器调试信息可以看到响应信息x-tengine-error: You are forbidden to list buckets
。
问题原因
ESA的私有Bucket回源功能和OSS静态网站托管功能的默认首页配置冲突。
说明
OSS的Bucket在配置静态网站托管的时候,需要配置域名的默认首页为指定文件,例如index.html
,使用匿名身份访问网站域名(例如:https://example.com/
)的时候会自动解析到默认首页(例如:https://example.com/index.html
)。但是ESA开启OSS私有Bucket回源功能后,访问ESA加速域名产生的回源OSS请求相当于非匿名身份发起的根目录访问请求,而该请求默认会被ESA拒绝,导致用户访问被拒绝而出现“You are forbidden to list buckets”报错。
解决方案
该文章对您有帮助吗?