生产化部署指南
本指南说明如何将 OAuth2 全栈系统(用户前端 + 管理后台 + 后端 API)部署到生产环境。
架构概览
Internet
│
┌──────┴──────┐
│ Nginx │ :80 → :443 (TLS)
│ (反向代理) │
└──────┬──────┘
┌────────────┼────────────┐
│ │ │
┌─────┴─────┐ ┌────┴────┐ ┌────┴────┐
│ Frontend │ │ Admin │ │ Backend │
│ (Vue SPA) │ │ (Vue) │ │ (C++) │
│ :80 │ │ :80 │ │ :5555 │
└───────────┘ └─────────┘ └────┬────┘
│
┌─────────┼─────────┐
│ │
┌─────┴─────┐ ┌───────┴───────┐
│ PostgreSQL│ │ Redis │
│ :5432 │ │ :6379 │
└───────────┘ └───────────────┘
路由规则(Nginx):
/api/*,/oauth2/*,/.well-known/*,/health→ Backend/admin/*→ Admin Console/*(其他) → User Frontend
前置条件
硬件要求
- CPU: 2 核心以上
- 内存: 4GB 以上(推荐 8GB)
- 磁盘: 20GB 以上可用空间
- 网络: 公网 IP,域名已解析到服务器
操作系统支持
- Ubuntu 20.04 / 22.04 / 24.04 LTS
- Debian 11 / 12
- CentOS Stream 8 / 9
- Rocky Linux 8 / 9
软件依赖安装
1. 安装 Docker
Ubuntu/Debian:
# 更新包索引
sudo apt update
# 安装必要依赖
sudo apt install -y ca-certificates curl gnupg lsb-release
# 添加 Docker 官方 GPG 密钥
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# 设置 Docker 仓库
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 安装 Docker Engine
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 启动 Docker 服务
sudo systemctl start docker
sudo systemctl enable docker
# 验证安装
docker --version
docker compose version
CentOS/Rocky Linux:
# 安装必要依赖
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# 添加 Docker 仓库
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 安装 Docker
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 启动 Docker 服务
sudo systemctl start docker
sudo systemctl enable docker
# 验证安装
docker --version
docker compose version
2. 配置 Docker 用户组(可选但推荐)
# 创建 docker 组(如果不存在)
sudo groupadd docker
# 将当前用户添加到 docker 组
sudo usermod -aG docker $USER
# 重新登录或运行以下命令使组权限生效
newgrp docker
# 验证:无需 sudo 运行 docker
docker ps
2.5. 配置 Docker 镜像加速器(中国大陆必需)
由于 Docker Hub 在中国大陆访问不稳定,拉取镜像会超时(典型错误:dial tcp registry-1.docker.io:443: i/o timeout),必须配置镜像加速器。
以下加速器地址经实测(2026-06)在阿里云服务器上验证可用:
创建或修改 Docker 配置文件:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json > /dev/null << 'EOF'
{
"registry-mirrors": [
"https://docker.1panel.live",
"https://docker.awsl9527.cn",
"https://docker.xuanyuan.me"
],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "3"
}
}
EOF
说明:配置多个加速器,Docker 会按顺序尝试,任一可用即拉取成功。
重启 Docker 服务使配置生效:
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo systemctl status docker
验证镜像加速器配置:
# 检查配置是否被加载(应显示上述 registry-mirrors 列表)
docker info | grep -A 5 "Registry Mirrors"
# 测试拉取镜像(本项目需要的全部镜像)
docker pull postgres:17-alpine
docker pull redis:7-alpine
docker pull nginx:stable-alpine
docker pull prom/prometheus:latest
docker pull ubuntu:24.04
如果某个加速器报错(如 502 或 i/o timeout),Docker 会自动尝试下一个;若全部失败,参考下方故障排除。
故障排除:
-
所有加速器均失败:访问 dongyubin/DockerHub 获取最新可用列表,替换
daemon.json中的地址后重启 Docker。 -
使用阿里云专属加速器(需要阿里云账号,最稳定):
- 登录 阿里云容器镜像服务 → 镜像工具 → 镜像加速器
- 获取专属加速地址(形如
https://<your_code>.mirror.aliyuncs.com) - 将该地址置于
daemon.json的registry-mirrors数组首位
-
使用代理拉取(如果有可用的代理服务器):
# 为 Docker 守护进程配置代理sudo mkdir -p /etc/systemd/system/docker.service.dsudo tee /etc/systemd/system/docker.service.d/http-proxy.conf > /dev/null << EOF[Service]Environment="HTTP_PROXY=http://your-proxy:port"Environment="HTTPS_PROXY=http://your-proxy:port"Environment="NO_PROXY=localhost,127.0.0.1"EOFsudo systemctl daemon-reloadsudo systemctl restart docker
3. 安装 Git
Ubuntu/Debian:
sudo apt install -y git
CentOS/Rocky Linux:
sudo yum install -y git
4. 安装 OpenSSL(用于生成密钥)
Ubuntu/Debian:
sudo apt install -y openssl
CentOS/Rocky Linux:
sudo yum install -y openssl