阿里云 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天前
|
人工智能 自然语言处理 文字识别
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
Qwen3.7-Max是阿里云百炼面向智能体时代推出的新一代旗舰模型,对标GPT-5.5、Claude Opus 4.7等闭源旗舰。该模型支持百万级token上下文窗口,具备顶级推理能力、多模态搜索与视觉理解增强、流式输出低延迟响应等核心优势,覆盖编程、办公、长周期自主执行等复杂场景。同时支持OpenAI接口兼容,便于系统快速迁移。用户可通过Token Plan团队或节省计划等订阅方式灵活调用,适合企业级高要求场景使用。
7899 34
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
|
2天前
|
数据采集 人工智能 前端开发
让 Coding Agent 从黑盒到透明:阿里云 Agent 观测审计数据采集实践
AI Agent 规模化落地带来执行黑盒、行为难追溯、成本难度量三大难题。阿里云基于 OTel 标准,面向 Coding Agent、个人通用助理和框架型 Agent,推出 LoongSuite Pilot、插件及探针等无侵入采集方案,让 Agent 实现可看见、可分析、可审计、可治理。
679 145
|
2天前
|
人工智能 缓存 自然语言处理
阿里Qwen3.7-Max评测:Agent能力显著提升,耗时与调用成本大幅下降
阿里云百炼推出面向智能体的旗舰大模型Qwen3.7-Max,具备长周期自主执行能力,显著提升编程、办公自动化等复杂任务处理水平;支持MCP集成与多框架兼容,并以限时5折+100万Tokens免费试用大幅降低使用门槛,助力企业高效落地AI应用。在阿里云百炼平台快速体验:https://t.aliyun.com/U/fPVHqY
1898 10
|
2天前
|
人工智能 运维 JavaScript
阿里云Qoder CN(原通义灵码)全解析 产品形态、版本划分与技术适配说明
在AI辅助开发与智能办公工具持续普及的当下,阿里云旗下原通义灵码正式更名为Qoder CN,同时延伸出QoderWork CN、Qoder CN CLI、Qoder CN Mobile等多款配套产品,形成覆盖代码开发、日常办公、终端交互、移动端使用的完整工具矩阵。Qoder CN核心定位为AI智能编码助手,深度适配主流代码编辑器、集成开发环境以及终端场景;QoderWork CN则偏向桌面端综合办公辅助,二者面向不同使用场景,划分了多个版本档位,搭配差异化资源配额、功能权限与计费规则,同时兼容多款主流大模型。
475 4
|
2天前
|
人工智能 安全 定位技术
CodeGraph深度解析 让Claude Code工具调用直降七成的核心原理与实操教程
如今以Claude Code为代表的AI编程智能体已经成为开发者日常编码、项目重构、漏洞修复的必备工具。但在长期使用过程中,几乎所有开发者都会遇到同一个明显痛点:AI虽然具备强大的代码生成与分析能力,却常常陷入盲目探索的循环中。
1293 2
|
2天前
|
JavaScript 定位技术 API
CodeGraph 爆火:编程 Agent 需要的不是更多上下文,而是一张提前画好的代码地图
CodeGraph 是一款爆火的本地代码智能工具,通过 tree-sitter 解析 AST 构建结构化知识图谱(存于 SQLite),为编程 Agent 提前生成“代码地图”。它显著降低 Agent 在中大型项目中的探索成本——实测工具调用减少71%、Token 降57%、速度提升46%,支持19+语言及主流框架路由识别,完全离线、无需 API Key。
423 1
CodeGraph 爆火:编程 Agent 需要的不是更多上下文,而是一张提前画好的代码地图
|
2天前
|
人工智能 弹性计算 运维
阿里云发布堡垒机智能运维Agent,运维交互进入自然语言新时代
支持自然语言运维,提升效率与安全双保障。
1178 1
|
2天前
|
存储 安全 Java
AgentScope Java 2.0:打造分布式、企业级智能体底座
AgentScope 2.0 面向分布式部署、稳定运行、权限安全等企业级需求全面升级,打造支持多租户隔离与长期稳定运行的企业级智能体底座。
|
2天前
|
存储 定位技术 数据库
CodeGraph 如何让 Claude Code减少 7 成工具调用?
CodeGraph 为 Coding Agent 提供本地代码知识图谱,把函数、类、调用链和框架路由提前整理成“项目地图”,减少盲目搜索和文件读取。它不是新 Agent,而是上下文基础设施,让 Agent 更快找到正确代码路径,平均减少 7 成工具调用。
1335 4
|
2天前
|
人工智能 运维 API
2026年阿里云百炼通义千问Qwen3.7-plus深度介绍 功能特性、使用优势及618大促订阅方案指南
大模型技术的普及,让AI能力逐步融入个人办公、内容创作、代码编写、企业运营、教育培训等各类场景。不同定位的模型对应不同使用需求,旗舰级模型性能强劲但使用成本偏高,轻量化模型价格低廉却难以胜任复杂任务,而介于两者之间的中端主力模型,凭借均衡的能力、亲民的定价、广泛的场景适配性,成为绝大多数个人用户、小型团队、中小企业的首选。
579 1