全部产品
Search
文档中心

负载均衡:OSS 静态网站托管

更新时间:Aug 04, 2026

ALB扩展版支持将请求转发至DNS域名类型的后端服务。用户可以使用OSS存储静态资源,由ALB扩展版统一调度请求,通过VPC内网转发至OSS,实现前后端分离架构的同时,降低公网流量成本并提升访问稳定性。

方案架构

扩展版ALB实例接收客户端请求,将请求通过VPC内网转发至DNS域名服务器组中配置的OSS Bucket访问域名,并将Bucket的响应返回给客户端。需要处理其他请求时,按需添加后端服务并配置转发规则即可。

  • 扩展版ALB实例:提供负载均衡和流量转发能力。

  • HTTPS监听:接收客户端请求。

  • DNS域名类型服务器组:配置OSS Bucket的访问域名作为后端服务。

  • OSS Bucket:存储网站静态资源。

image

适用范围

  • 用户已获取ALB扩展版公测资格。

  • 用户已在华北6(乌兰察布)地域创建一个专有网络VPC,分别在可用区A和可用区B创建一个交换机。

  • 用户已注册自定义域名,并已完成ICP备案。本方案中的OSS Bucket和ALB实例均部署于华北6(乌兰察布)地域,绑定到OSS Bucket的域名以及客户端访问ALB实例的域名都需要完成ICP备案后才能使用。

  • 用户已准备好与自定义域名匹配的服务器证书。非阿里云购买的证书需要上传到阿里云证书服务。

操作步骤

1.创建OSS Bucket并配置静态网站托管

创建OSS Bucket,配置公共读权限,上传静态页面文件,并启用静态网站托管功能。

创建OSS Bucket

  1. 登录OSS管理控制台,在左侧导航栏单击Bucket列表,然后单击创建 Bucket。

  2. 在创建 Bucket面板,完成以下配置,其他配置项保留默认值,单击完成创建并确认。

    • Bucket 名称:设置Bucket名称,需全局唯一。

    • 地域:选择华北6(乌兰察布)。

配置Bucket权限

  1. 在Bucket列表中,单击目标Bucket 名称进入Bucket详情页。

  2. 在左侧导航栏,单击权限控制 > 阻止公共访问,关闭阻止公共访问开关,并在弹出的对话框中进行确认。

  3. 切换到读写权限页签,单击设置按钮,将Bucket ACL修改为公共读,确认后单击保存。

上传静态页面文件

  1. 在左侧导航栏,单击文件管理 > 文件列表,然后单击上传文件。

  2. 上传以下示例的静态网页index.html,文件 ACL选择继承Bucket。

<html>
   <head>
       <title>Hello OSS!</title>
       <meta charset="utf-8">
   </head>
   <body>
       <p>Start Alibaba Cloud OSS Hosting</p>
       <p>This is the index page</p>
   </body>
</html>
  1. 继续上传404.html文件,文件 ACL选择继承Bucket。

<html>
   <head>
       <title>Page Not Found</title>
       <meta charset="utf-8">
   </head>
   <body>
       <p>The page you are looking for does not exist</p>
       <p>You can try visiting the homepage</p>
   </body>
</html>

配置静态网站托管

在左侧导航栏,单击数据管理>静态页面,然后单击设置。配置完成后保存退出。

  • 默认首页:输入index.html。

  • 子目录首页:默认不开通。

  • 默认 404 页:输入404.html。

  • 错误文档响应码:默认404。

2.为OSS Bucket绑定域名

通过Bucket的默认域名(无论内网或外网域名)访问HTML文件时,OSS会通过添加响应头字段强制浏览器下载文件而非在线预览,需要为Bucket绑定自定义域名来绕过此安全限制。

  1. 在左侧导航栏,单击Bucket 配置 > 域名管理,然后单击绑定域名。

  2. 在绑定域名对话框输入想要绑定到OSS Bucket的域名,根据提示信息完成绑定并确认绑定的域名已生效。

绑定完成后,记录绑定的域名(如static.example.com),后续步骤中将使用该域名配置ALB后端服务。

3.创建扩展版ALB实例

  1. 登录ALB控制台,单击创建应用型负载均衡。

  2. 在购买页完成以下配置,单击立即创建。

    • 地域:选择华北6(乌兰察布)。

    • 实例网络类型:选择公网。

    • VPC和可用区:选择目标VPC,勾选乌兰察布 可用区A和乌兰察布 可用区B后选择对应交换机,并自动分配公网IP。

    • 协议版本:选择IPv4。

    • 功能版本:选择扩展版。

  3. 在确认订单页面确认实例配置详情,单击立即开通。

4.配置PrivateZone解析

配置PrivateZone,将步骤二中绑定到OSS Bucket的自定义域名指向Bucket的内网域名,使ALB通过VPC内网访问Bucket,降低公网流量成本并提升访问稳定性。

添加PrivateZone域名

  1. 登录内网域名解析控制台,单击添加域名 (Zone)。

  2. 在添加对话框,完成以下配置,单击确定并确认。

    • 内网权威域名 (Zone):输入OSS Bucket绑定的域名,如static.example.com。

    • 生效于阿里云VPC内网:选择ALB实例所在VPC。

添加CNAME解析记录

  1. 在域名列表中,单击目标域名操作列的解析设置进入解析记录页面,单击添加记录。

  2. 在添加记录对话框,完成以下配置,单击确定。

    • 记录类型:选择CNAME。

    • 主机记录:输入@,即解析到主域名static.example.com。

    • 记录值:输入OSS Bucket的内网域名。可在OSS Bucket的概览页查看ECS 的 VPC 网络访问(内网)在Bucket 域名列的对应值,格式如bucket-name.oss-cn-wulanchabu-internal.aliyuncs.com。

    • 解析请求来源和TTL时间:保持默认。

  3. 在弹出的解析变更确认对话框确认解析信息,单击确定。

解析生效后,在ALB所在VPC内访问static.example.com时,会被最终解析至OSS Bucket的内网IP,通过VPC内网进行访问。

5.创建DNS域名类型服务器组

创建DNS域名类型的服务器组,将OSS Bucket的访问域名添加为后端服务。

  1. 在服务器组控制台,确认地域为华北6(乌兰察布),单击创建服务器组。

  2. 参考以下信息完成服务器组配置,单击创建。

    • 服务器组类型:选择DNS域名。

    • 服务器组名称:本文输入sgp-dns-oss。

    • 选择后端协议:默认选择HTTP。

    • DNS服务器配置:单击一键填充内网DNS解析地址,系统将自动填写阿里云内网DNS。

  3. 在服务器组创建成功对话框单击添加后端服务器。在添加DNS域名对话框完成以下配置,单击确定。

    • DNS域名:输入OSS Bucket绑定的域名,如static.example.com。

    • 端口:输入80。

6.创建监听

  1. 在ALB控制台,单击目标实例ID进入实例详情页。在监听页签单击创建监听。

  2. 在配置监听步骤,选择监听协议为HTTPS,监听端口填写443,完成后单击下一步。

  3. 在配置SSL证书步骤,选择与自定义域名匹配的服务器证书,单击下一步。

  4. 在选择服务器组步骤,依次选择DNS域名类型和服务器组sgp-dns-oss,完成后单击下一步。

  5. 在配置审核步骤,确认配置并单击提交。

7.设置域名解析

将自有域名通过CNAME解析指向ALB实例的DNS名称,客户端通过自有域名访问ALB。

本文以阿里云云解析DNS为例,对于非阿里云注册域名,需先将域名添加到云解析控制台。

  1. 在ALB控制台,复制目标实例的DNS 名称。

  2. 登录域名解析控制台,在目标域名的操作列单击解析设置。在解析设置页面单击添加记录。

  3. 参考以下信息添加CNAME记录,完成后单击确定。

    • 记录类型:选择CNAME。

    • 主机记录:输入域名前缀如test,则访问ALB的域名为test.example.com。

    • 解析请求来源和TTL时间:保持默认。

    • 记录值:输入ALB实例的DNS名称。

  4. 在弹出的解析变更确认对话框确认解析信息,单击确定。

8.验证测试

test.example.com为示例域名,实际测试时请替换为步骤七中配置的真实域名,需确保域名解析已生效。

访问首页

在浏览器中访问https://test.example.com,返回OSS中配置的默认首页index.html。

直接访问index.html

在浏览器中访问https://test.example.com/index.html,同样返回index.html。

测试404错误页面

在浏览器中访问不存在的资源,如https://test.example.com/donotexist,返回OSS中配置的404错误页面404.html。

更多信息

计费说明

  • OSS费用:按实际使用量付费,详见OSS计费概述。

  • ALB扩展版:目前处于公测阶段,用户可免费体验。扩展版ALB实例绑定的 EIP 有独立的计费规则,费用由EIP收取。

  • PrivateZone解析费用:采用按量付费的计费方式,详见内网域名解析产品计费。

  • 域名和公网DNS解析费用:除了需要支付域名供应商的域名费用外,在阿里云配置公网DNS解析需要支付公网权威解析费用。

  • 证书费用:从阿里云购买证书或将证书上传至阿里云,需要支付服务器证书费用。

ALB扩展版支持的地域

区域

地域

可用区

中国

华北6(乌兰察布)

可用区A、可用区B、可用区C

华东1(杭州)

可用区J、可用区K

华北2(北京)

可用区I、可用区K、可用区L

华东2(上海)

可用区B、可用区F

中国香港

可用区B、可用区C、可用区D

亚太

新加坡

可用区A、可用区B、可用区C

日本(东京)

可用区B、可用区C、可用区E

马来西亚(吉隆坡)

可用区A、可用区B、可用区C

欧洲与美洲

德国(法兰克福)

可用区A、可用区B

美国(硅谷)

可用区A、可用区B

中东

阿联酋(迪拜)

可用区A、可用区B

使用建议

  • Bucket类型选择:根据访问频率选择合适的存储类型,平衡性能和成本;对重要的静态资源启用同城冗余存储,获取更高的可用性保障。

  • CDN加速:在ALB前配置CDN,将静态资源缓存至边缘节点,提升访问速度和用户体验。

常见问题

访问未到达OSS,报错upstream connect error or disconnect/reset before headers. reset reason: connection timeout

  • 确认已正确配置PrivateZone解析,且PrivateZone已正确关联ALB所在VPC。

  • 确认服务器组中配置的域名为OSS Bucket绑定的域名。

访问到达OSS,但未展示首页内容

  • 确认Bucket已开启公共访问,且ACL权限为公共读。

  • 确认Bucket已开启静态网站托管功能,已上传index.html文件并设置为默认首页。