4.8 KiB
4.8 KiB
职引 - 部署文档
目录
环境要求
生产服务器
- 操作系统: Linux (Ubuntu 20.04+ / CentOS 7+)
- Node.js: 18.x 或更高版本
- MongoDB: 4.4+ (或 MongoDB Atlas 云服务)
- Nginx: 1.18+ (反向代理)
- PM2: 进程管理
本地开发
- Node.js: 18.x
- MongoDB: 本地或云服务
- HBuilderX: uni-app 开发
后端部署
1. 安装依赖
cd backend
npm install --production
2. 配置环境变量
复制 .env.example 为 .env.production 并修改:
cp .env.example .env.production
vim .env.production # 修改生产配置
关键配置项:
MONGODB_URI: 生产数据库地址JWT_SECRET: 强密钥(至少32字符)PORT: 生产端口(推荐 3000)WECHAT_APPID/WECHAT_SECRET: 小程序生产凭证
3. 编译 TypeScript
npm run build
4. 使用 PM2 启动
# 安装 PM2
npm install -g pm2
# 启动应用
pm2 start dist/main.js --name zhiyin-backend
# 设置开机自启
pm2 startup
pm2 save
5. 配置 Nginx 反向代理
server {
listen 80;
server_name api.yourdomain.com;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
前端部署(H5)
1. 修改 API 地址
编辑 zhiyin-app/config/api.js:
export const BASE_URL = 'https://api.yourdomain.com/api'
2. 编译 H5
cd zhiyin-app
npm run build:h5
3. 部署到 Web 服务器
将 dist/build/h5/ 目录上传到服务器:
# 使用 scp 上传
scp -r dist/build/h5/* user@your-server:/var/www/zhiyin/
# 或使用 FTP/SSH 上传
4. 配置 Nginx
server {
listen 80;
server_name yourdomain.com;
root /var/www/zhiyin;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
# 静态资源缓存
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf)$ {
expires 1y;
add_header Cache-Control "public, immutable";
}
}
微信小程序部署
1. 修改配置
编辑 zhiyin-app/manifest.json:
{
"mp-weixin": {
"appid": "your-production-appid"
}
}
2. 编译小程序
cd zhiyin-app
npm run build:mp-weixin
3. 使用微信开发者工具上传
- 打开微信开发者工具
- 导入
dist/build/mp-weixin/目录 - 点击「上传」按钮
- 填写版本号和项目备注
- 登录微信公众平台提交审核
4. 提交审核前检查
- ✅ 已配置合法域名(在微信公众平台)
- ✅ 已通过 AI 深度合成类目审批
- ✅ 已配置隐私协议和用户协议
- ✅ 已测试所有核心功能
数据库初始化
1. 创建数据库和用户
mongo
> use zhiyin
> db.createUser({
user: "zhiyin",
pwd: "strong-password",
roles: [{ role: "readWrite", db: "zhiyin" }]
})
2. 创建索引
cd backend
node scripts/create-indexes.js
3. 初始化管理员账号(可选)
node scripts/create-admin.js
监控和日志
1. 日志配置
使用 PM2 查看日志:
pm2 logs zhiyin-backend
pm2 logs zhiyin-backend --lines 100
2. 错误监控
推荐集成:
- Sentry: 错误追踪
- PM2 Plus: 进程监控
- MongoDB Atlas: 数据库监控
3. 性能监控
# 查看进程状态
pm2 monit
# 查看资源占用
pm2 list
常见问题
Q1: MongoDB 连接失败
A: 检查 .env.production 中的 MONGODB_URI 是否正确,确保数据库可访问。
Q2: 微信小程序请求失败
A: 确保在微信公众平台配置了合法域名(必须是 HTTPS)。
Q3: AI 调用失败
A: 检查 AI_PRIMARY_KEY 和 AI_BACKUP_KEY 是否正确,确保 API 额度充足。
安全检查清单
- 已修改默认 JWT_SECRET
- 已禁用开发模式的固定验证码
- 已配置 CORS 白名单
- 已启用 HTTPS
- 已配置 MongoDB 访问权限
- 已移除控制台日志(生产环境)
- 已配置速率限制(防止滥用)
回滚方案
如果需要回滚到上一个版本:
# 1. 查看 PM2 历史
pm2 logs zhiyin-backend --lines 1000
# 2. 重启到上一个版本
pm2 restart zhiyin-backend --version <previous-version>
# 3. 数据库回滚(如有迁移)
mongorestore --uri="<connection-string>" --drop backup/
最后更新: 2026-06-02