生产配置:环境变量、MySQL 与 COS 对象存储
整理生产环境变量、MySQL 部署选择、数据库安全、COS 图片上传和上线前配置验收清单。
知识目录Docker 从入门到生产部署12 / 14
动手前先知道
这篇文章对应的真实任务是:整理生产环境变量、MySQL 部署选择、数据库安全、COS 图片上传和上线前配置验收清单。
第一次阅读先弄清“为什么需要这一步、它改变了哪个运行对象、失败时去哪里检查”,再执行命令。命令可以查,运行模型和排障路径才是长期能力。
环境变量、MySQL 和 COS 是生产部署里最容易出事故的三类配置。代码本身没问题,但配置错了,系统一样跑不起来。
这一篇重点讲:哪些配置应该放环境变量,生产数据库和测试数据库怎么分,COS 怎么接入,正式上线前要检查什么。
为什么配置不能写死
如果把配置写死在代码里,会带来几个问题:
- 测试环境和生产环境无法切换。
- 密钥容易进 Git。
- 修改配置必须重新改代码。
- 本地、服务器、Docker 环境行为不一致。
正确做法是:代码只读取配置,具体值由环境变量提供。
环境变量分层
建议至少保留:
.env.example
.env.local
.env.production
其中:
.env.example只写字段名和示例,不写真实密钥。.env.local给本地开发和测试用。.env.production只放服务器,不提交仓库。
配置项应该包括什么
后端常见配置:
APP_ENV=production
SERVER_PORT=8080
DATABASE_DSN=...
JWT_SECRET=...
ADMIN_USERNAME=...
ADMIN_PASSWORD_HASH=...
COS_BUCKET=...
COS_REGION=...
COS_SECRET_ID=...
COS_SECRET_KEY=...
PUBLIC_SITE_URL=https://example.com
CORS_ALLOWED_ORIGINS=https://example.com
前端常见配置:
NEXT_PUBLIC_SITE_URL=https://example.com
API_BASE_URL=http://api:8080
REVALIDATE_SECRET=...
具体字段以项目实际配置为准。
MySQL 怎么部署
个人项目前期有三种选择:
- 使用现有测试数据库。
- 在服务器 Docker 里跑 MySQL。
- 使用云数据库。
正式生产更建议:
- 如果预算有限:服务器 Docker MySQL + 定时备份。
- 如果追求稳定:云数据库。
不建议生产环境长期使用测试数据库,因为测试写入、调试、误删都可能影响正式内容。
MySQL 生产配置注意点
至少注意:
- 不开放公网 3306。
- 使用强密码。
- 设置字符集
utf8mb4。 - 定期备份。
- 迁移前先备份。
- 应用账号尽量不要长期使用 root。
个人项目早期可以简化,但上线前最好把 root 直连改掉。
COS 怎么接入
COS 适合保存文章图片、专题封面、Jarvis 角色资源等静态资产。
它的好处是:
- 不占服务器磁盘。
- 图片访问更稳定。
- 后续可以接 CDN。
- 应用容器重建不影响图片。
上传流程通常是:
后台选择图片
↓
后端校验类型和大小
↓
后端上传 COS
↓
数据库保存资源记录
↓
文章 Markdown 引用图片 URL
配置验收清单
上线前检查:
.env.production存在。- 生产密钥不是测试密钥。
- 数据库能连接。
- 数据库迁移执行成功。
- COS 上传成功。
- 图片能公开访问。
- CORS 域名正确。
- Cookie / Session 域名正确。
- 前端 API 地址正确。
配置问题没有技术含量,但特别影响上线体验,所以必须认真。
JARVIS · 当前文章
有哪里没看懂?可以只问这篇。
Jarvis 会限定在《生产配置:环境变量、MySQL 与 COS 对象存储》及其公开关联内容中检索,并把引用定位回原文章节。