网站越来越慢,八成不是机器性能不够,而是图片、视频、附件全堆在服务器上,每次访问都占带宽、吃磁盘 IO。把静态资源挪到对象存储(COS/OSS/OBS),是性价比最高的一次优化。
这篇讲清楚:什么是对象存储、怎么把网站的图片附件搬过去、怎么配 CDN 加速、成本怎么控。
需要云服务器可以看看财富云计算:NAT 型无独立公网 IP,价格比独立 IP 机型省一半以上,一键开服面板,主流游戏快速部署。
一、为什么要把静态资源搬出去
不搬的问题
| 问题 | 表现 |
|---|---|
| 带宽被图片吃光 | 一个页面 20 张图,每张 500KB,一次访问就 10MB 流量,20 个人同时看就 200MB |
| 磁盘 IO 打满 | 图片小文件多,机械盘随机读直接卡死 |
| 备份体积暴涨 | 网站数据库 500MB,图片 30G,每次备份都怀疑人生 |
| 迁移一次想退坑 | 换机器要 rsync 几十 G 小文件,传到天荒地老 |
搬走的好处
- 带宽压力转到对象存储,服务器只吐动态页面
- 服务器磁盘只剩数据库和代码,备份恢复到秒级
- 对象存储自带多副本,不怕单盘故障
- 天然支持 CDN,全国访问都快
二、主流对象存储怎么选
| 厂商 | 产品 | 特点 |
|---|---|---|
| 腾讯云 | COS | 和 CDN 打通顺,国内节点多 |
| 阿里云 | OSS | 生态最全,SDK 齐全 |
| 华为云 | OBS | 企业用户多,价格有竞争力 |
| 七牛云 | Kodo | 图片处理强,开发者友好 |
| 又拍云 | USS | CDN 老牌,图片管家好用 |
选型建议:服务器在腾讯云就配 COS,在阿里云就配 OSS——同厂商内网互通,上传下载不走公网流量,还免流量费,这是白捡的便宜。
三、动手:把资源搬到 COS(以腾讯云为例)
1. 创建存储桶
控制台 → 对象存储 → 创建存储桶:
- 名称:全局唯一,比如
myblog-static - 地域:选和服务器同地域(内网互通)
- 访问权限:公有读私有写(公开资源用公有读;涉及用户隐私的用私有读 + 签名 URL)
2. 装命令行工具
# 腾讯云 COS 官方工具 coscmd(pip 安装)
pip install coscmd
# 配置(需要 SecretId/SecretKey,在控制台 API 密钥管理里创建)
coscmd config -a 你的SecretId -s 你的SecretKey -b myblog-static -r ap-guangzhou阿里云 OSS 用 ossutil,逻辑一样。
3. 上传文件
# 上传单个文件
coscmd upload /var/www/html/logo.png /images/logo.png
# 上传整个目录
coscmd upload -rs /var/www/html/uploads/ /uploads/
# -r 递归, -s 只传变化的文件(增量同步)上传后访问地址:https://myblog-static-1250000000.cos.ap-guangzhou.myqcloud.com/images/logo.png。
4. 网站改造:把上传路径指过去
Typecho / WordPress 这类程序,附件上传目录改到对象存储有两种做法:
做法 A:改附件上传路径(简单)
Typecho 后台 → 设置 → 允许上传的文件类型不变,把上传目录通过插件或改代码指向 COS。社区有现成的 COS/OSS 插件,装完填桶名和密钥即可,附件自动传对象存储,前台引用 CDN 域名。
做法 B:全站静态化后托管(彻底)
如果网站基本静态(比如 Hexo、Hugo 生成的博客),直接 hexo generate 后整站传到 COS,开静态网站托管,服务器只需要跑个 Nginx 反代,甚至可以直接关掉服务器。这是最省的方案,适合纯展示型站点。
5. 旧资源迁移
历史附件也要搬,不能只让新的走 COS:
# 先列一下有多少文件、多大
du -sh /var/www/html/uploads/
# 批量上传(保持目录结构)
coscmd upload -rs /var/www/html/uploads/ /uploads/
# 数据库里替换 URL(把旧的内网路径换成 COS 域名)
# 先备份数据库!
mysqldump -u root -p blogdb > blogdb-backup.sql
mysql -u root -p blogdb -e "
UPDATE typecho_contents SET text = REPLACE(text, 'http://旧域名/uploads/', 'https://cdn.你的域名/uploads/');
"REPLACE 前一定先备份数据库,手滑把 URL 替换错,全站图片挂掉。
四、配 CDN:让访问快十倍
对象存储默认域名在国内访问速度一般,套一层 CDN 才是完全体:
- 控制台 → CDN → 添加域名 → 源站选刚才的 COS 桶
- 加速域名填
cdn.你的域名.com - 按提示配 CNAME 解析
- 缓存策略配置:
| 资源类型 | 缓存时间 | 说明 |
|---|---|---|
| 图片(jpg/png/webp) | 30 天 | 基本不会变,长缓存 |
| CSS/JS | 30 天 | 带 hash 版本号可以更长 |
| 字体 | 30 天 | 同上 |
| HTML | 不缓存或 5 分钟 | 动态内容要实时 |
| 附件下载 | 7 天 | 看更新频率 |
- 开启 HTTPS(CDN 免费证书)、开启 Gzip/Brotli 压缩、开启 HTTP/2
回源配置:CDN 没命中时回源站取。把回源超时设 10 秒、开启「跟随回源」能省流量。
刷新预热:资源更新后 CDN 还有旧缓存,要主动刷新:
# 腾讯云 CDN 刷新接口(或用控制台)
# 目录刷新: https://cdn.你的域名.com/uploads/*
# URL 刷新: 具体文件路径五、成本控制:别被流量费偷袭
对象存储费用 = 存储 + 流量 + 请求次数,流量是大头。控费几招:
- CDN 缓存拉满,回源流量越少越便宜。命中率 95% 以上是基本操作
- 图片压缩后再传,用
imagemin或在线工具压一遍,很多博客图能压掉 70% 体积 - 用 WebP 格式,同画质比 JPEG 小 30%
- 设生命周期规则,30 天前的日志文件自动转低频存储,180 天转归档
- 同地域内网免流量,服务器和桶必须同地域,上传下载走内网
参考量级:一个日更博客,月增 500MB 内容、月流量 20G,存储+CDN 费用在个位数到十几块之间,远比升级服务器带宽便宜。
六、安全配置(容易漏)
公有读桶的风险:别人可以盗刷你的流量,或者直接拿走你的资源。
防护措施:
- Referer 防盗链:CDN 控制台配 Referer 白名单,只允许自己域名引用
白名单: *.yourdomain.com
空 Referer: 允许(浏览器直接访问场景按需)- IP 黑白名单:发现恶意刷流量的 IP 直接封
- 开启用量告警:超过阈值短信/邮件通知,被盗刷第一时间知道
- 私有读 + 签名 URL:用户头像、订单附件这类敏感文件,用服务端生成带签名的临时链接(有效期几分钟),杜绝直接暴露
上传安全:API 密钥只放服务器环境变量,别提交进 Git;密钥定期轮换。
七、常见问题
Q:搬迁后网站图片全挂?
多半是数据库 URL 替换漏了或者 CDN CNAME 没生效。先直接访问 COS 原域名确认文件在,再查 CDN 域名解析。
Q:CDN 缓存导致更新看不到?
上传新图后到 CDN 控制台做 URL 刷新,或者给资源加版本号 ?v=20261013 绕过缓存。
Q:对象存储和服务器内网互通怎么配?
同地域默认内网互通,工具里选内网 Endpoint(COS 是 *.inner.cos.ap-guangzhou.myqcloud.com),不走公网免流量。
Q:不想改程序代码,有通用办法吗?
Nginx 反代:把 /uploads/ 路径 proxy_pass 到 COS 域名,网站代码零改动。见 Nginx 反向代理配置。
Q:备案问题?
用 COS 默认域名(myqcloud.com)不需要备案;绑定自己的加速域名(cdn.xxx.com)在国内节点需要备案。域名已备案就没这问题。
小结
静态资源分离是网站优化里投入最小、见效最大的一步:搬到对象存储 + 套 CDN + 做好防盗链,服务器带宽能省 70% 以上,访问速度反而更快。花一小时做完,受益好几年。
更多网站优化内容见财富云计算知识库:Nginx 配置、HTTPS 部署、静态站 CDN、网站变慢排查全系列。需要云服务器可以看看财富云计算:一键开服面板,NAT 型无独立公网 IP,价格比独立 IP 机型省一半以上。
延伸阅读
- 网站环境怎么选:LNMP 手动 / 宝塔面板 / Docker / 云开发
- 问卷表单系统搭建:SurveyKing / Formbricks,数据自己收
- 图床搭建:Lsky Pro / Lychee,自托管图片托管方案
- 邮件列表搭建:listmonk 自托管 Newsletter,把读者握在自己手里
- 文档站点搭建:MkDocs / VuePress / Docsify,产品文档与技术手册方案
- RSS 阅读器搭建:FreshRSS 自托管,把信息流拿回自己手里
- 短链接服务搭建:Shlink 自托管,链接数据自己掌握
- 网站状态监控页搭建:Uptime Kuma,服务器挂了第一时间知道

[...]curl -s https://你的域名 | grep -E '<title>|description|og:'没有 description 和 og 标签的站,搜索引擎和分享预览都会很难看。Sitemap 插件:生成 XML 站点地图,去百度站长平台/Google Search Console 提交,收录速度差一倍。2. 评论与反垃圾Typecho 自带评论系统,但垃圾评论能把你淹了[...]
2026-10-13 回复
[...]sftp> get 远程文件图形工具更顺手:WinSCP(Windows 免费):拖拽传文件FileZilla(全平台):SFTP 协议选「SFTP - SSH File Transfer Protocol」FinalShell / WindTerm(Windows):SSH + 传输一体大文件(存档、镜像包)用对象存储中转更稳,见对象存储分离静态资源。七、NAT 型服务器的连接NAT 型没[...]
2026-10-15 回复
[...]网站打开慢、图片加载转圈、跨省访问延迟高——上 CDN 是最便宜的提速手段,小站甚至有用免费额度的。这篇讲 CDN 怎么选、怎么配、缓存怎么调、源站怎么保平安,NAT 型服务器和动态网站的特殊情况都有覆盖。需要现成的游戏云服务器,可以看看财富云计算:一键开服面板,NAT 型无独立公网 IP,价格比独立 IP 机型省一半以上,建站和游戏服都能快速部署。一、CDN 解决什么问题CDN = 内容分发网络[...]
2026-10-15 回复
[...]docker run -d --name alist -p 5244:5244 -v /data/alist:/opt/alist/data xhofe/alist:latest注意:自建网盘服务别放重要数据当唯一副本,它的定位是「方便访问」,不是「可靠存储」。五、带宽分配:共存的隐形瓶颈多服务共存,带宽是共享的。规划原则:场景带宽建议说明游戏服为主,网站没人看10-15M网站静态化,几乎不吃带宽[...]
2026-10-18 回复
[...]find /backup -name "save_*" -mtime +14 -delete方案细节见rsync 同步与定时备份实战,对象存储选型见对象存储分离静态资源,定时任务见crontab 计划任务完全指南。备份必须验证(大多数人漏掉的一步)# 每月抽一个备份,实际解压测试[...]
2026-10-18 回复
[...]# 到期自动续(certbot 自带 systemd timer)完整部署见SSL 证书与 HTTPS 部署指南,强制跳转和响应头配置见HTTPS 强制跳转与安全响应头。五、NAT 型建站的三个注意点1. 备案与共享 IP用国内机房 + 域名访问需要备案;共享 IP 下如果别人的站被墙,可能牵连你的站(罕见但存在)。个人站长建议用备案域名 + 正规商家,共享 IP 的管理策略见NAT 共享 IP [...]
2026-10-18 回复
[...]netsh advfirewall firewall add rule name="GameRange" dir=in action=allow protocol=UDP localport=26901-26903完整的 Windows 环境准备(远程桌面连接、运行库安装、SteamCMD 用法、开机自启、8 个常见坑)见:《Windows 云服务器开服通用前置教程》→ htt[...]
2026-10-18 回复
[...]小程序对服务器的要求有一条硬杠杠:必须支持 HTTPS,必须能放 443 端口。这一条就能淘汰一半的便宜机器。这篇讲清楚小程序后端该买什么配置、多少带宽、哪个地域,以及 NAT 型到底能不能用。一、先算账:你的小程序吃掉多少资源小程序后端典型构成:Nginx(HTTPS 终结)+ 应用(Node/PHP/Java)+ MySQL + Redis(可选)。资源消耗和"日活 × 人均请求数"直接相关。[...]
2026-10-18 回复
[...].then(res => console.log(res.data))自建后端:买云服务器,自己搭 Nginx + Node/PHP/Java + MySQL + Redis,域名解析、备案、HTTPS、合法域名全流程自己走(流程见小程序后端搭建实战)。二、硬对比维度云开发自建服务器前期准备开箱即用,10 分钟跑通买服务器 + 备案 + 配环境,1 天到 20 天运维要求几乎为零要会 Lin[...]
2026-10-18 回复
[...]style="width:{{item.w}}px;height:{{item.h}}px" />lazy-load 让视口外图片不加载;提前算好宽高占位,避免图片加载完成时页面"跳一下"。四、网络层优化1. 请求合并把首页的 5 个接口合成 1 个聚合接口(BFF 模式),TCP 握手和域名解析只付一次代价。移动网络下,每次新建连接的隐性成本可能比传输本身还高。2. 开[...]
2026-10-18 回复
[...]./discourse-setupapp.yml 里配好域名、SMTP(Discourse 强依赖邮件,注册验证、通知全走邮件,必须先配好发信,见邮件退信与 SPF/DKIM/DMARC 配置)。Discourse 的管理后台是它的精髓:信任等级自动权限、反垃圾评分、敏感词、话题合并——社区做大了,这些工具能省掉两个运营。四、社区运营的三条硬功夫技术只是上半场,社区死活在下半场:冷启动:前 100[...]
2026-10-18 回复
[...]个人中心(订单 / 地址 / 优惠券)四、接支付:最需要谨慎的一步国内自建电商的支付选项:方式资质要求费率说明微信支付企业主体 + 商户号约 0.6% 起需对接口,或用插件支付宝企业/个体户约 0.6% 起同上个人码收款无0仅限小额/熟人场景,风控严PayPal企业主体约 3.9%+做海外用硬性要求:企业主体才能申请微信/支付宝商户号,个人主体基本没戏——注册主体时想清楚全站 HTTPS 是强制的[...]
2026-10-18 回复
[...]nextcloud:stable上线必做三件事,否则慢到想砸键盘:配 Redis 做内存缓存(APCu + Redis 双缓存,Nextcloud 官方文档有专章)PHP 内存限制调到 512M+,OPcache 开起来数据目录放 SSD,网盘是重 IO 应用,机械盘直接放弃四、网盘的通用功课存储策略:本地盘放热数据,冷数据/大文件转存对象存储,成本差一个数量级,见对象存储分离静态资源。备份:网盘[...]
2026-10-18 回复
[...]}4. 初始化:访问域名 → 环境检查 → 填数据库 → 设管理员。进后台第一件事:关闭游客上传(除非你就是做公共图床,那先想清楚合规问题)配存储策略:本地 + 对象存储双策略,大的走对象存储开启图片处理:压缩 + WebP 转换 + 缩略图三、存储策略:本地 vs 对象存储图床的图片只增不减,硬盘迟早爆。Lsky Pro 支持多存储策略,正确姿势是:图片类型存哪理由小图(< 200KB)本[...]
2026-10-18 回复