1.
准备工作:确认账号、地域与工具
子项一:登录阿里云控制台并确保有 OSS 与 CDN 权限。子项二:确认越南地域(示例:越南(河内) ap-southeast-3),记下 OSS endpoint(例如:oss-ap-southeast-3.aliyuncs.com)。子项三:在本地安装并配置 ossutil(https://github.com/aliyun/ossutil)用于批量操作:ossutil config。
2.
创建 OSS Bucket 并设置存储类型
子项一:控制台 > 对象存储 OSS > 创建 Bucket,选择地域为越南(河内),存储类型选择标准(Standard)或根据冷热访问选择归档/低频。子项二:勾选“开启静态网站托管”(如需要),设置首页和404页。子项三:记录 Bucket 域名 bucketname.oss-ap-southeast-3.aliyuncs.com。
3.
设置 Bucket 访问与权限(公开读取)
子项一:若用于公开静态资源,控制台 > 权限管理 > 公共访问设置为“公开读”。子项二:或使用 ossutil:ossutil set-acl oss://your-bucket --acl public-read。子项三:如需防盗链,启用 Referer 白名单并加入你的站点域名。
4.
上传资源并设置缓存头(Cache-Control)
子项一:上传文件示例:ossutil cp ./dist/* oss://your-bucket/static/ --recursive --acl public-read。子项二:设置元数据(Cache-Control 与 Content-Type),示例:ossutil cp index.html oss://your-bucket/ --meta "Cache-Control:no-cache,Content-Type:text/html; charset=utf-8"。子项三:对静态不可变资源(带哈希名,如 app.abc123.js)设置长缓存例如 Cache-Control:max-age=31536000。
5.
启用并配置阿里云 CDN(创建加速域名)
子项一:控制台 > CDN > 域名管理 > 添加域名,填写你的自有域名或直接使用加速域名,源站类型选择“OSS”并填入 bucketname.oss-ap-southeast-3.aliyuncs.com。子项二:选择加速区域(全球或指定区域),勾选 HTTP/2 与 QUIC(如支持)。子项三:完成后在域名解析中添加 CNAME 到 CDN 分配的加速域名。
6.
启用压缩(GZIP / Brotli)与文件传输优化
子项一:CDN 配置中打开“文件压缩”选项,设置对 text/css、application/javascript、text/html、application/json 等 MIME 类型启用 Gzip 或 Brotli。子项二:确保上传文件未被二次压缩(如图片不启用 gzip)。子项三:启用 HTTP/2 可并行加载资源,提高小文件并发效率。
7.
配置 HTTPS 与证书(自有域名必需)
子项一:CDN 域名管理中开启 HTTPS,选择“阿里云证书”自动申请或上传你自己的证书。子项二:证书生效后,设置强制 HTTPS 重定向以提升安全与性能(开启 HSTS 可选)。子项三:测试命令:curl -I -L -k https://your-domain,确认证书和协议(HTTP/2)。
8.
细化 CDN 缓存策略与回源规则
子项一:在 CDN 缓存配置中对不同路径设置不同缓存规则,例如 /static/* 长缓存,/index.html 短缓存或不缓存。子项二:开启“携带参数缓存”或配置忽略 query-string 根据需要。子项三:设置回源协议为 HTTPS(如果 OSS 已启用 HTTPS)以确保端到端安全。
9.
利用版本化与文件名哈希避免缓存更新问题
子项一:构建过程中为静态资源生成哈希文件名(如 app.abc123.js),每次发布改变引用。子项二:对 HTML 等入口文件使用短缓存或 no-cache,确保用户能尽快获取到新引用。子项三:结合 CDN 刷新(下一段说明)实现即时生效。
10.
CDN 刷新与预热操作
子项一:发布新版本后,在 CDN 控制台使用“刷新/预热”功能刷新受影响的路径或文件列表(支持批量)。子项二:通过 API 或 ossutil 调用自动化刷新脚本减少人工操作。子项三:预热常访问资源到边缘节点以减少首次请求延迟。
11.
开启日志、监控与告警
子项一:在 OSS 开启访问日志或静态网站访问日志以分析请求分布。子项二:在 CDN 开启访问日志与性能监控(命中率、带宽、请求量、延时),设置阈值告警。子项三:结合阿里云 CloudMonitor 与 Grafana 持续观察热区与瓶颈。
12.
使用合适的文件格式与优化资源体积
子项一:图片优先使用 WebP/AVIF(兼容时)并做响应式图片切图。子项二:对 JS/CSS 做 Tree-shaking、压缩与拆分,减少首屏资源体积。子项三:合并小请求或使用 HTTP/2 并保持资源合理拆分。
13.
回源优化与容灾配置
子项一:如果越南边缘不稳定,可在 CDN 源站配置多个备份源或使用跨区域源站(例如香港/新加坡)。子项二:开启回源重试与超时配置,避免短时回源失败导致资源加载失败。子项三:对关键静态资源启用多域名切换或 DNS 级别容灾。
14.
自动化部署与 CI 集成实践
子项一:在 CI/CD 流水线中加入资源构建、哈希命名、上传 OSS(ossutil 或 SDK)与 CDN 刷新步骤。子项二:示例脚本:ossutil cp dist/* oss://your-bucket/static/ --recursive --meta "Cache-Control:max-age=31536000" && aliyun cdn RefreshObjectCaches --ObjectPath '/static/*'。子项三:将成功发布记录写入版本管理便于回滚。
15.
测试与诊断常用命令与方法
子项一:curl 测试头信息:curl -I -H "Accept-Encoding: gzip" https://your-domain/static/app.js 查看 Cache-Control、Content-Encoding、Server 与 Age。子项二:使用浏览器 DevTools 网络面板观察资源来源(cdn、disk、origin)、耗时与缓存命中。子项三:若命中率低,检查请求带参、Cookie 或 Referer 导致无法命中。
16.
总结关键配置与最佳实践清单
子项一:使用越南地域 OSS 做源站并配合 CDN 边缘加速。子项二:对不可变资源长缓存、入口文件短缓存、启用 gzip/brotli、HTTP/2 与 HTTPS。子项三:自动化上传与刷新、监控告警与多源容灾保障稳定低延迟。
17.
问:如何设置 OSS 中文件的 Cache-Control 为一年?
答:使用 ossutil 上传并带元数据,例如:ossutil cp app.abc123.js oss://your-bucket/static/ --meta "Cache-Control:max-age=31536000,Content-Type:application/javascript"。已上传文件也可以通过 SetObjectMeta 接口或控制台对象管理修改元数据。
18.
问:CDN 与 OSS 结合时如何保证 HTTPS 无缝?
答:在 CDN 域名设置 HTTPS,选择阿里云证书自动申请或上传证书,回源协议设置为 HTTPS 并为 OSS Bucket 开启 HTTPS(或使用 CDN 作为 HTTPS 终端),最后将自有域名 DNS CNAME 指向 CDN 分配域名。
19.
问:当 CDN 命中率低时应该先排查什么?
答:先检查请求是否带有影响缓存的 QueryString、Cookie 或动态 Header,确认 CDN 缓存规则是否匹配路径,再看 OSS 返回的 Cache-Control 是否短或 no-cache,必要时调整缓存规则或使用文件名哈希避免不必要的回源。
来源:提升静态资源加载性能的阿里云越南对象存储服务器配置技巧