全部产品
Search
文档中心

负载均衡:使用ALB扩展版和阿里云OSS实现静态网站托管

更新时间:Feb 12, 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创建一个交换机。

  • 用户已注册自定义域名。本文计划将ALB实例部署于华北6(乌兰察布)地域,因此域名需要完成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

image

直接访问index.html

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

image

测试404错误页面

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

image

更多信息

计费说明

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

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

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

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

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

ALB扩展版支持的地域

区域

地域

可用区

中国

华北6(乌兰察布)

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

华东1(杭州)

可用区J、可用区K

亚太

新加坡

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

欧洲与美洲

德国(法兰克福)

可用区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文件并设置为默认首页。