把静态站从VPS迁到对象存储加CDN的实操记录

原站跑在一台2核2G的VPS上,Nginx直出静态文件,随着图片和归档增多,单机带宽和TLS握手成了瓶颈。做法是把构建产物上传到对象存储,开启静态网站托管,前面挂CDN并配置强制HTTPS与缓存规则:HTML设短缓存、带hash的静态资源设长缓存加immutable,回源走私有读加回源鉴权。踩的坑有三个:一是SPA路由的404回退要单独配置错误文档,否则刷新子路径全白屏;二是CDN默认不回传gzip,需在回源头里补Accept-Encoding,否则传输体积反而变大;三是证书签发后忘记清缓存,旧证书残留导致部分节点报错。结论:迁移后首屏耗时明显下降,源站压力几乎归零,但缓存规则和回退配置必须一次配到位,否则排查成本远高于省下的机器钱。

原站跑在一台2核2G的VPS上,Nginx直出静态文件,随着图片和归档增多,单机带宽和TLS握手成了瓶颈。做法是把构建产物上传到对象存储,开启静态网站托管,前面挂CDN并配置强制HTTPS与缓存规则:HTML设短缓存、带hash的静态资源设长缓存加immutable,回源走私有读加回源鉴权。踩的坑有三个:一是SPA路由的404回退要单独配置错误文档,否则刷新子路径全白屏;二是CDN默认不回传gzip,需在回源头里补Accept-Encoding,否则传输体积反而变大;三是证书签发后忘记清缓存,旧证书残留导致部分节点报错。结论:迁移后首屏耗时明显下降,源站压力几乎归零,但缓存规则和回退配置必须一次配到位,否则排查成本远高于省下的机器钱。

相关实践 →