导语:38 篇本地跑通 = 完成 70%。这篇把剩下 30% 走完——七步上线,每步都是你 25-27 篇学过的动作,这次串成一条完整的流水线。
图片工具站在本地能跑了(38 篇)。现在上线——七步,每一步你都做过,这篇把它们串起来,并标清楚"哪些是做的、哪些是等的"。
一、七步上线总表
| # | 步骤 | AI 做什么 | 你做什么 | 要等多久 | 回链 |
|---|---|---|---|---|---|
| ① | 买服务器 | — | 选配置、下单 | 即时 | 07 |
| ② | 域名 + 备案 | — | 注册域名、提交备案 | 数周(最长等待) | 08 |
| ③ | Docker 打包 | 写 Dockerfile | 看懂、构建 | 即时 | 18 |
| ④ | compose 部署 | 写 compose | 启动、验证 | 即时 | 25 |
| ⑤ | 配 Nginx | 写配置(含上传大小) | 测试、reload | 即时 | 17 |
| ⑥ | SSL 证书 | 给命令 | 执行、验证 | 分钟级 | 09 |
| ⑦ | 配 CDN(可选) | 给步骤 | 流量大了再配 | 分钟级 | 12 |
经验:只有②备案是"等"的,其他全是"做"的——所以备案第一天就去办,做①②③④⑤⑥⑦的时候,备案刚好下来。
二、逐块拆解
① 买云服务器(07 篇)
图片工具站不吃配置,入门款就够(07 篇:别为未来买单)。系统选 Ubuntu(14 篇熟)。
② 域名 + ICP 备案(08 篇)——最长的等待
- 域名:几十元/年(13 篇成本)。
- 备案:提前规划,周期以管局为准(数周到月级)——今天就去提交。
经验:备案没下来时,先用 IP:端口 联调(25 篇),别干等——备案和开发并行。
③ Docker 打包(18/25 篇)
让 AI 基于项目写 Dockerfile(38 篇的项目结构):
"图片工具站是 FastAPI + Pillow,依赖在 requirements.txt。帮我写 Dockerfile:装依赖、暴露 8000 端口、启动命令 uvicorn。"
④ docker-compose 部署(25 篇)
docker compose up -d --build
注意:OSS 的 AccessKey 通过环境变量传进 compose(21/32 篇:绝不写进代码/文件)。
⑤ 配 Nginx(17/26 篇)——注意上传大小限制
三行配置(17 篇):listen 80 + server_name 你的域名 + proxy_pass http://127.0.0.1:8000,然后 nginx -t + reload。
但图片站有个必踩的坑:Nginx 默认只允许上传 1MB(client_max_body_size 默认 1m)——用户传 2MB 的图,Nginx 直接返回 413 Request Entity Too Large,请求根本到不了你的应用。必须在配置里放开:
server {
listen 80;
server_name 你的域名.com;
client_max_body_size 12m; # 放开上传限制,和 38 篇的 10MB 上限对齐
location / { proxy_pass http://127.0.0.1:8000; }
}
经验:"本地能传、上线不能传"十有八九是 Nginx 413——上线配置检查清单里永远带上 client_max_body_size。
⑥ SSL 证书(09/26 篇)
sudo certbot --nginx -d 你的域名.com
一行命令,自动续期(09 篇)——小锁图标上线。
⑦ 配 CDN(12 篇)——可选,流量大了再上
别一上线就配 CDN(12 篇自己的判断标准):静态资源多 + 用户分散 + 有流量,三个条件满足了才值得。图片工具站上线初期没流量,CDN 纯属花钱。
什么时候上:观察一段时间,访问量起来了,再把 OSS 的图片域名接 CDN(12 篇省钱三招:压缩 + CDN + 清理)。
三、时间线:哪些"做"、哪些"等"
| 阶段 | 动作 | 性质 |
|---|---|---|
| 第 1 天 | 提交域名备案 | 等(数周) |
| 第 1 周 | 买服务器 + 本地项目 Docker 化 + 联调 | 做 |
| 备案下来 | compose 部署 + Nginx + SSL | 做 |
| 上线后 | 配 CDN + 观察访问量 | 做 |
经验:"备案等待"是个人项目唯一的硬等待——把它变成并行时间:等待期间把部署、SSL、CDN 全部练熟。
四、避坑清单
- 备案别拖:数周周期是硬成本——本地一跑通就去提交(35/37 篇同款)。
- OSS 密钥进环境变量:compose 里传,别写进 Dockerfile/代码(21/32 篇双红线)。
- Nginx 上传限制必改:默认 1MB,图片站必报 413——配置里加
client_max_body_size 12m(本篇⑤)。 - 生产同样限上传:本地限了 10MB,生产也得限(38 篇)——不然被传爆。
- Pillow 限像素:别只限文件大小,还要限图片尺寸(38 篇)——超大图解压直接吃光服务器内存。
- CDN 流量大了再上:没流量时配 CDN 是花钱(12 篇);流量起来后再配,缓存更新记得刷新(12 篇三坑)。
总结
- 七步上线:买服务器(07)→ 域名+备案(08,最长的等待,第一天就办)→ Docker 打包(18)→ compose 部署(25)→ Nginx(17,记得放开上传限制)→ SSL(09)→ CDN(12,可选,流量大了再配)。
- 只有备案是"等"的,其余全是"做"的——备案和开发并行,别干等。
- 每步都是旧知识:25-27 篇的部署流水线,这次只是加了"图片站"这个业务。
- 避坑四条:备案提前、密钥进环境变量、Nginx 413 上传限制、生产同样限上传、Pillow 限像素、CDN 流量大了再上。
10 分钟小任务:打开你 26 篇的待办应用,对照七步总表,在纸上标出你已经走过的步骤(①-⑥你全走过,就差⑦CDN)——你会发现:图片站上线 = 待办应用上线 + 一个 CDN。下一篇,让它出现在更多人面前:把工具站做成小程序。
下一篇:案例(下):从 Web 到多端——把工具站做成小程序。
