GCP Bucket负载均衡静态网站子目录页面报NoSuchKey错误求助
排查与解决GCP Bucket负载均衡子目录页面NoSuchKey错误
1. 确认Bucket对象键的精确匹配
GCP Cloud Storage是扁平存储架构,不存在物理文件夹,customers/index.htm是完整的对象键。
- 登录GCP控制台进入目标Bucket,直接搜索
customers/index.htm和custaccounts/index.htm,确保对象键没有多余斜杠(如//customers/index.htm)、大小写错误(对象键区分大小写)或拼写错误。
2. 检查Bucket静态网站配置
虽然你是直接访问带文件名的URL,但仍需确认静态网站的主页面后缀配置:
- 进入Bucket的「静态网站」设置,将主页面后缀设为
index.htm(与根目录默认页一致)。这一步主要确保目录路径(如/customers/)能自动跳转,但也能避免部分路径解析异常。
3. 验证负载均衡URL映射规则
问题大概率出在负载均衡的路径转发配置上:
- 进入负载均衡的「URL映射」页面,检查指向Cloud Storage的后端服务:
- 确保创建后端服务时,没有修改路径前缀(不要将请求路径重写为
/,必须保留原始请求路径)。 - 排查是否存在自定义URL重写/重定向规则,误将
/customers/index.htm这类路径修改为不存在的对象键。
- 确保创建后端服务时,没有修改路径前缀(不要将请求路径重写为
4. 测试Bucket直接访问权限
排除Bucket权限或对象本身的问题:
- 用GCP提供的对象公开URL测试:
https://storage.googleapis.com/[你的Bucket名称]/customers/index.htm,如果这个URL能正常访问,说明Bucket和对象本身没问题,问题完全在负载均衡配置。 - 确认对象或Bucket已配置
allUsers的Storage Object Viewer权限,确保公开访问正常。
5. 清除CDN缓存(若启用)
如果负载均衡绑定了CDN,旧缓存可能导致错误:
- 针对
/customers/index.htm和/custaccounts/index.htm路径手动执行CDN缓存刷新。 - 检查缓存规则,避免将404响应设置为长期缓存。
6. 检查负载均衡健康检查
健康检查配置异常也可能导致请求无法正常路由:
- 确认健康检查的路径为
/index.htm(根目录默认页),且健康检查状态正常,后端未被标记为不健康。
内容的提问来源于stack exchange,提问作者Srini
相关产品推荐
相关产品推荐

