61 lines
2.0 KiB
Markdown
61 lines
2.0 KiB
Markdown
# 11.2 环境规划
|
||
|
||
:::tip 概述
|
||
推荐拓扑:Nginx(TLS + 静态 + 反代)→ 应用(:8000)→ MySQL / Redis(内网)。文件访问走独立域址直供 upload 目录。本页给出容量与网络规划基线。
|
||
:::
|
||
|
||
## 推荐拓扑
|
||
|
||
```text
|
||
┌─ 静态前端(/)
|
||
互联网 ── HTTPS ── Nginx ── 反代 /api → 应用:8000
|
||
└─ 文件域址 → upload 目录直供(temp 封禁)
|
||
│
|
||
应用服务器
|
||
├── MySQL(内网 3306)
|
||
└── Redis(内网 6379,设密码)
|
||
```
|
||
|
||
## 网络暴露面
|
||
|
||
| 服务 | 暴露 | 说明 |
|
||
|---|---|---|
|
||
| Nginx 443 | 公网 | 唯一入口 |
|
||
| 应用 8000 | 仅 Nginx 可达 | 不对公网直开 |
|
||
| MySQL/Redis | 仅内网 | compose 默认仅绑回环 |
|
||
| /metrics | 内网或关闭 | 防指标泄露 |
|
||
|
||
## 容量基线(中小规模起步值)
|
||
|
||
| 资源 | 建议 |
|
||
|---|---|
|
||
| CPU/内存 | 2C4G 起步(Go 服务内存曲线平缓) |
|
||
| 磁盘 | 系统盘 + 数据盘分离;upload 与 log 单独挂载或配额 |
|
||
| MySQL | 8C16G 级别起步,连接池与应用 maxOpenConns(50)匹配 |
|
||
| Redis | 1–2G 起步(黑名单/验证码/字典/在线会话) |
|
||
|
||
## 配置注入方式
|
||
|
||
| 环境 | 方式 |
|
||
|---|---|
|
||
| 开发 | config.yaml 直改 |
|
||
| 生产 | `.env` + APP_* 环境变量(compose 映射或 systemd EnvironmentFile) |
|
||
|
||
敏感项(JWT 密钥、数据库/Redis 密码)只进环境变量,不进版本库。
|
||
|
||
## 多环境差异
|
||
|
||
| 项 | 测试 | 生产 |
|
||
|---|---|---|
|
||
| app.prod | false | **true** |
|
||
| generator.enable | true(开发用) | **false** |
|
||
| api.docs | true | false |
|
||
| debug(SQL 日志) | 按需 | false |
|
||
| logger.level | debug/info | info/warn |
|
||
| 备份 | 可选 | 强制 |
|
||
|
||
## 相关
|
||
|
||
- [2.3 配置文件与环境变量](/zh/quickstart/env-vars.html)
|
||
- [11.8 安全加固清单](/zh/deploy/security.html)
|