2.5 KiB
2.5 KiB
shanxia2.0 Backend 生产部署说明
1. 上传到服务器
将 backend/ 目录上传到:
/iflytek/shanxia2.0/backend
必须排除(否则 Linux 上会报 bad interpreter: No such file or directory):
venv/(禁止上传本机 venv,必须在服务器上用./start-prod.sh install重建)logs/、__pycache__/、*.pycgraphify-out/uploads/(若生产已有附件数据则保留服务器端目录).env(开发配置,生产用.env.production)
本地打包示例:
cd /path/to/shanxia2.0
tar czf shanxia2.0-backend.tar.gz \
--exclude='backend/venv' \
--exclude='backend/logs' \
--exclude='backend/__pycache__' \
--exclude='backend/graphify-out' \
--exclude='backend/.env' \
backend/
2. 服务器首次启动
cd /iflytek/shanxia2.0/backend
chmod +x start-prod.sh
# 首次:安装 Python 依赖(自动创建 venv)
./start-prod.sh install
# 启动(默认 127.0.0.1:9111,读取 .env.production)
./start-prod.sh start
3. 日常运维
./start-prod.sh status # 查看状态
./start-prod.sh logs # 最近日志
./start-prod.sh restart # 发版后重启
./start-prod.sh stop # 停止
健康检查:
curl -s http://127.0.0.1:9111/health
# {"status":"healthy"}
4. 配置文件
| 文件 | 用途 |
|---|---|
.env.production |
生产环境变量(DB/Redis/MinIO/JWT/RSA 等) |
start-prod.sh |
启动脚本(默认端口 9111) |
默认监听 127.0.0.1:9111,由 Nginx :9911 反代 /api/*,无需对公网开放 9111。
5. 与 Nginx 配合
Nginx 配置见仓库 生产环境部署/nginx-shanxia2.0.conf:
- 前端:
http://121.43.228.102:9911 - API:
/api/→http://127.0.0.1:9111
6. 常见问题
Q: bad interpreter: .../Users/.../venv/bin/python3: No such file or directory
A: 误把本机 Mac 的 venv/ 上传到了 Linux。在服务器执行:
cd /iflytek/shanxia2.0/backend
rm -rf venv
./start-prod.sh install
./start-prod.sh start
新版 start-prod.sh 也会自动检测并重建无效 venv。
Q: 启动失败,日志报 ModuleNotFoundError
A: 执行 ./start-prod.sh install 重新安装依赖。
Q: 登录失败 / 公钥变化
A: 确认 .env.production 中 LOGIN_RSA_PRIVATE_KEY_PEM 已配置且未被修改。
Q: 数据库连接失败
A: 检查服务器到 47.99.164.66:3306 网络与白名单。
Q: 需要改端口
A: PORT=9111 ./start-prod.sh restart 或修改脚本默认值。