阿里云 OSS 实战:从零搭建静态网站托管 + CDN 加速完整指南

简介: 本文分享阿里云OSS+CDN托管静态站点的实战方案:省去服务器运维,提升国内访问速度至50ms内;涵盖Bucket配置、SPA路由适配、自动化部署(CLI/GitHub Actions)、HTTPS与CDN缓存策略,并附成本估算(约¥18/月)和常见坑点解析,适合前端开发者快速落地。

最近做了几个纯前端项目,每次到部署阶段都要折腾服务器,开启 Nginx、配证书、设反向代理……说实话对于静态站点来说太重了。后来改用 OSS + CDN 的方案,不仅省去了维护服务器的麻烦,整体访问速度也提升明显。这篇就把我实际搭建的流程整理一下,希望对有类似需求的同学有参考价值。

本文实验环境使用了阿里云 OSS 服务,目前新购续费同价,费用较低,通过这个链接注册的新用户可以直接开通体验。


一、为什么选 OSS 托管静态站点

传统静态站点部署方案:

方案 优点 缺点
自建 Nginx 灵活 需要维护服务器、手动配证书
GitHub Pages 免费 国内访问慢、无法自定义后端逻辑
Vercel/Netlify 体验好 海外节点,国内延迟不稳定
OSS + CDN 稳定、国内速度快、按量计费 需要一点配置成本

OSS 的核心优势在于:它是对象存储,天然适合存放 HTML/CSS/JS/图片等静态资源,配合阿里云 CDN 可以在全国各省做边缘节点加速,访问延迟基本在 50ms 以内。


二、环境准备

需要:

  1. 阿里云账号(已实名认证)
  2. 一个构建好的前端项目(本文以 Vite + React 为例)
  3. 自定义域名(可选,但建议配置)

三、Step 1:创建 OSS Bucket

登录阿里云控制台 → 对象存储 OSS → 创建 Bucket:

  • Bucket 名称:全局唯一,建议用项目名,如 my-project-static
  • 地域:选择离目标用户近的节点(华东/华北均可)
  • 读写权限:改为「公共读」(静态网站需要匿名访问)
  • 版本控制:可开启,方便回滚

创建完成后,进入 Bucket → 基础设置 → 静态网站托管

  • 默认首页:index.html
  • 默认 404 页(对于 SPA 应用):同样填 index.html(这样前端路由才能正常工作)

⚠️ SPA 路由 404 问题是最常见的坑:如果你用了 React Router 或 Vue Router 的 History 模式,不设置 404 跳转到 index.html 会导致刷新页面直接 404。


四、Step 2:上传构建产物

本地构建项目:

npm run build
# 构建产物默认在 dist/ 目录

方案 A:控制台手动上传(适合小项目)

直接把 dist/ 目录内容拖入 Bucket 文件管理界面。

方案 B:使用阿里云 OSS CLI 工具(推荐)

# 安装 ossutil(macOS/Linux)
curl https://gosspublic.alicdn.com/ossutil/1.7.19/ossutil64 -o ossutil
chmod +x ossutil

# 配置 AK/SK(从 RAM 子账号获取,不要用主账号)
./ossutil config

# 增量同步 dist/ 到 Bucket
./ossutil sync dist/ oss://my-project-static/ \
  --delete \            # 删除 OSS 中 dist/ 里已不存在的文件
  --force \             # 不弹出确认提示
  --jobs 10             # 并发上传数

关于 RAM 子账号权限:强烈建议单独创建一个只有 OSS 特定 Bucket 写权限的子账号,把 AK/SK 写进 CI/CD 环境变量,主账号的 AK 一旦泄露损失会很大。

方案 C:GitHub Actions 自动部署

# .github/workflows/deploy.yml
name: Deploy to OSS

on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3

      - name: Setup Node
        uses: actions/setup-node@v3
        with:
          node-version: 18

      - name: Build
        run: npm ci && npm run build

      - name: Upload to OSS
        uses: manyuanrong/setup-ossutil@v2.0
        with:
          endpoint: oss-cn-hangzhou.aliyuncs.com
          access-key-id: ${
   {
    secrets.OSS_ACCESS_KEY_ID }}
          access-key-secret: ${
   {
    secrets.OSS_ACCESS_KEY_SECRET }}

      - run: ossutil sync dist/ oss://my-project-static/ --delete --force

五、Step 3:绑定自定义域名 + HTTPS

在 Bucket → 域名管理 → 绑定用户域名,添加你的域名(如 www.example.com),然后在 DNS 服务商处把该域名 CNAME 解析到 OSS 提供的 Endpoint 地址。

HTTPS 证书建议直接用阿里云免费的 DV 证书(SSL 证书服务 → 免费证书),上传到 Bucket 绑定域名处即可,免去手动续签的麻烦。


六、Step 4:接入 CDN 加速

OSS 本身没有 CDN 加速,如果用户分布全国,建议再套一层 CDN:

控制台 → CDN → 添加加速域名 → 源站选「OSS 域名」→ 选择刚才的 Bucket 即可。

缓存策略建议

# 带 hash 的静态资源(JS/CSS):强缓存
*.js, *.css  →  Cache-Control: max-age=31536000, immutable

# HTML 文件:不缓存(每次都要最新版本)
*.html  →  Cache-Control: no-cache

# 图片资源:中等缓存
*.png, *.jpg, *.webp  →  Cache-Control: max-age=604800

这个策略的核心逻辑:Vite/webpack 构建出来的 JS/CSS 文件名里带内容 hash(如 main.a3f9b2.js),内容变了文件名就变了,可以放心强缓存;而 HTML 作为入口文件要保持最新,不能缓存。


七、踩坑记录

坑 1:跨域问题
如果你的站点需要通过 JS 访问 OSS 上的资源(比如直接请求图片/文件),需要在 Bucket 设置跨域规则(CORS):

{
   
  "AllowedOrigins": ["https://www.example.com"],
  "AllowedMethods": ["GET", "HEAD"],
  "AllowedHeaders": ["*"],
  "MaxAgeSeconds": 3600
}

坑 2:上传大文件超时
单文件超过 100MB 建议开启分片上传(Multipart Upload),ossutil 默认超过 100MB 会自动分片,但如果用 SDK 自己写上传逻辑要注意手动实现。

坑 3:CDN 缓存刷新
每次发布新版本后,记得去 CDN 控制台刷新 HTML 文件缓存(或者通过 CDN API 自动化这一步),否则用户拿到的还是旧 HTML,加载到的还是旧 JS。


八、成本估算

以一个中型项目为例(月访问量 10 万次,存储 2GB 静态资源,流出流量 50GB):

费用项 大致费用
OSS 存储(2GB) ≈ ¥0.12/月
OSS 请求次数(10万次) ≈ ¥0.01/月
CDN 流量(50GB) ≈ ¥17.5/月
合计 ≈ ¥18/月

相比一台最低配 ECS(约 ¥100+/月),省了不少,而且还省去了运维成本。如果想算一下自己项目的费用,可以参考阿里云 OSS 价格页的官方计费说明,现在新购续费同价,长期使用也不用担心续费涨价。


九、总结

OSS + CDN 做静态站点托管这套方案用下来整体体验不错,适合以下场景:

  • 前端 SPA 应用(React/Vue/Angular)
  • 文档站点(VitePress/Docusaurus 生成的 HTML)
  • 营销落地页、活动页
  • 图床/资源 CDN

不太适合的场景:需要服务端渲染(SSR)、有数据库交互的动态应用,这类还是得上 ECS 或者函数计算。

如果你也有类似的静态站点部署需求,可以试试这套方案,评论区欢迎交流踩过的坑。


相关文章
|
2月前
|
对象存储
阿里云OSS静态页面托管实操|附落地页搭建案例
分享阿里云OSS静态页面托管的完整实操过程,包括文件配置、元数据设置和效果展示,附落地页案例参考。
|
5月前
|
人工智能 监控 Linux
AI开发革命:阿里云/本地部署OpenClaw+Codex/Claude Code 搭建AI Agent集群指南+免费多模型API配置+避坑教程
OpenClaw+AI Agent集群的模式,彻底打破了独立开发者的效率天花板,让"一人创办百万美元公司"从愿景变为现实。其核心并非依赖更强的AI模型,而是通过精妙的架构设计,让业务上下文与代码实现各司其职,同时借助自动化闭环与自我进化机制,持续降低人工干预成本。
3171 1
|
7月前
|
CDN
2026最新阿里云CDN收费标准:不同计费模式价格表(基础服务费和增值服务费用整理)
阿里云CDN费用分基础费(必选)和增值费(按需使用)。基础费支持按流量、带宽峰值或月结95峰值三种计费模式,默认按流量阶梯计价(中国内地低至0.15元/GB);可购资源包享优惠。增值费含HTTPS、QUIC、WAF、实时日志等,仅启用才计费。
1740 10
|
7月前
|
弹性计算 应用服务中间件 测试技术
阿里云最便宜云服务器,38元轻量应用服务器与99元和199元云服务器与性能、适用场景、购买教程
阿里云目前价格最便宜的云服务器包含轻量应用服务器2核2G配置38元/年,经济型e实例2核2G配置99元/年,通用算力型u1实例2核4G配置199元/年。这些服务器性能稳定,适用于个人开发者、初创企业、小型网站及博客、学习与实验、中小型企业网站、中型Web应用等多种场景。
2190 8
|
7月前
|
存储 安全 对象存储
手把手教你如何开启阿里云OSS存储服务并布署到网站1
本文介绍如何在阿里云OSS创建首个存储空间(Bucket)并配置RAM用户。首先登录OSS控制台创建Bucket,填写名称与地域;随后进入RAM控制台创建用户并获取访问密钥,实现安全访问。附详细步骤图示与链接示例,助您快速搭建对象存储环境。
1497 7
|
2月前
|
弹性计算 JavaScript 前端开发
阿里云ECS云服务器部署Vue打包静态网站:Nginx路由重定向完整配置指南
本文提供了一套完整的阿里云ECS云服务器部署Vue打包静态网站的解决方案,核心聚焦于Nginx路由重定向配置。文章从ECS实例选购与安全组配置入手,详细讲解了Vue项目打包、静态文件上传、Nginx安装与配置的全流程。重点剖析了Vue Router history模式下页面刷新404错误的根本原因,并提供了try_files指令、命名location回退、alias路径重写等多种Nginx配置方案。此外,还涵盖了Gzip压缩、静态资源缓存、HTTPS证书配置等性能优化与安全加固措施,以及多项目部署、API反向代理等进阶场景。通过完整的配置示例与故障排查指南,帮助开发者避开部署陷阱,实现Vue单
|
3月前
|
人工智能 JSON 运维
2026 生产级 AI Agent 自动化:零重型框架,彻底解决多步任务不稳定难题
本文提出“文件即状态”轻量架构,用5个文件实现AI Agent多步任务的稳定执行,无需LangGraph等重型框架。支持断点续跑、幂等重试、跨Agent协同,个人开发者7天即可落地生产级自动化。(239字)
|
5月前
|
Java PHP 开发工具
2026 年阿里云对象存储OSS超详细教程:功能全解与一步一步上手流程(新手小白也能立刻上手)
阿里云OSS是安全、稳定、无限扩容的云端对象存储服务,适用于图片、视频等静态资源存储。支持高并发访问、全球加速、防盗链与加密。本文详述开通流程及Java/PHP/Python/C#多语言上传实践。
|
5月前
|
域名解析 弹性计算 数据可视化
阿里云服务器建站流程:跟着图文一步步操作,网站上线全流程2026最新
本文详解2026最新阿里云建站全流程:从选购ECS或轻量应用服务器、配置安全组,到部署网站、购买/实名认证/备案域名、DNS解析及HTTPS配置,图文并茂,适合搭建企业官网、OA系统、博客或电商网站。
1457 3
|
6月前
|
域名解析 弹性计算 安全
阿里云网站搭建全流程指南:从域名注册到网站上线,新手2026最新教程
阿里云2026最新网站搭建指南:手把手教你从域名注册、服务器选购配置、ICP备案(1-20工作日)、网站部署、DNS解析到HTTPS证书配置,全流程覆盖。新手友好,合规安全上线,含各环节耗时说明与实操链接。