refactor(server): 更新服务器配置和部署脚本- 更改默认端口为3350,以适应生产环境。 - 增加了API信息端点,提供更详细的API状态信息。 - 提高了速率限制,以适应生产环境的更高请求量。 - 添加了错误处理中间件和404处理,增强了错误处理能力。 - 添加了优雅关机处理,确保服务器在接收到SIGINT或SIGTERM信号时能够优雅关闭。- 创建了生产环境配置文件示例 `.env.production.example`,并提供了详细的部署指南 `DEPLOYMENT_GUIDE.md`。 - 添加了启动脚本 `start-server.sh` 和同步脚本 `sync-to-server.sh`,简化了部署流程。 - 配置了Nginx配置文件 `xlxumu-api.conf`,支持HTTPS和反向代理。 ```
102 lines
3.1 KiB
Bash
102 lines
3.1 KiB
Bash
#!/bin/bash
|
|
|
|
# 锡林郭勒盟智慧养殖平台 - 生产环境同步脚本
|
|
# 服务器地址: www.jiebanke.com
|
|
# 目标目录: /data/nodejs/xlxumu/
|
|
|
|
SERVER="root@www.jiebanke.com"
|
|
TARGET_DIR="/data/nodejs/xlxumu"
|
|
|
|
# 颜色定义
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m' # No Color
|
|
|
|
echo -e "${GREEN}🚀 开始同步文件到生产服务器...${NC}"
|
|
|
|
# 1. 创建服务器目录结构
|
|
echo -e "${YELLOW}📁 创建服务器目录结构...${NC}"
|
|
ssh $SERVER "mkdir -p $TARGET_DIR/backend/api"
|
|
ssh $SERVER "mkdir -p $TARGET_DIR/backend/database"
|
|
ssh $SERVER "mkdir -p $TARGET_DIR/backend/services"
|
|
ssh $SERVER "mkdir -p $TARGET_DIR/backend/utils"
|
|
|
|
# 2. 同步后端API核心文件
|
|
echo -e "${YELLOW}📦 同步后端API文件...${NC}"
|
|
rsync -avz --delete \
|
|
--include="server.js" \
|
|
--include="package.json" \
|
|
--include="package-lock.json" \
|
|
--include="ai/" \
|
|
--include="data-platform/" \
|
|
--include="farming/" \
|
|
--include="finance/" \
|
|
--include="government/" \
|
|
--include="mall/" \
|
|
--include="trade/" \
|
|
--include="user-center/" \
|
|
--exclude="*" \
|
|
./backend/api/ $SERVER:$TARGET_DIR/backend/api/
|
|
|
|
# 3. 同步数据库设计文档
|
|
echo -e "${YELLOW}🗄️ 同步数据库文档...${NC}"
|
|
rsync -avz --delete \
|
|
--include="DESIGN.md" \
|
|
--include="README.md" \
|
|
--exclude="*" \
|
|
./backend/database/ $SERVER:$TARGET_DIR/backend/database/
|
|
|
|
# 4. 同步服务层代码
|
|
echo -e "${YELLOW}🔧 同步服务层代码...${NC}"
|
|
rsync -avz --delete \
|
|
--include="ai-service/" \
|
|
--include="data-platform-service/" \
|
|
--include="farming-service/" \
|
|
--include="finance-service/" \
|
|
--include="government-service/" \
|
|
--include="mall-service/" \
|
|
--include="trade-service/" \
|
|
--include="user-center-service/" \
|
|
--include="README.md" \
|
|
--exclude="*" \
|
|
./backend/services/ $SERVER:$TARGET_DIR/backend/services/
|
|
|
|
# 5. 同步工具类
|
|
echo -e "${YELLOW}🛠️ 同步工具类...${NC}"
|
|
rsync -avz --delete \
|
|
--include="README.md" \
|
|
--exclude="*" \
|
|
./backend/utils/ $SERVER:$TARGET_DIR/backend/utils/
|
|
|
|
# 6. 创建生产环境配置文件
|
|
echo -e "${YELLOW}⚙️ 创建生产环境配置...${NC}"
|
|
cat > .env.production << EOF
|
|
NODE_ENV=production
|
|
PORT=3350
|
|
DB_HOST=生产环境MySQL地址
|
|
DB_PORT=3306
|
|
DB_USER=生产环境MySQL用户
|
|
DB_PASSWORD=生产环境MySQL密码
|
|
DB_NAME=xlxumu_production
|
|
JWT_SECRET=your-super-secret-jwt-key-here
|
|
EOF
|
|
|
|
# 上传生产环境配置
|
|
scp .env.production $SERVER:$TARGET_DIR/backend/api/.env
|
|
|
|
# 7. 安装依赖并重启服务
|
|
echo -e "${YELLOW}📦 在服务器上安装依赖...${NC}"
|
|
ssh $SERVER "cd $TARGET_DIR/backend/api && npm install --production"
|
|
|
|
echo -e "${YELLOW}🔄 重启PM2服务...${NC}"
|
|
ssh $SERVER "cd $TARGET_DIR/backend/api && pm2 delete xlxumu-api 2>/dev/null || true"
|
|
ssh $SERVER "cd $TARGET_DIR/backend/api && pm2 start server.js --name xlxumu-api --env production"
|
|
|
|
# 8. 保存PM2配置
|
|
echo -e "${YELLOW}💾 保存PM2配置...${NC}"
|
|
ssh $SERVER "pm2 save"
|
|
|
|
echo -e "${GREEN}✅ 同步完成!${NC}"
|
|
echo -e "${GREEN}🌐 API服务地址: https://xlapi.jiebanke.com${NC}"
|
|
echo -e "${GREEN}📊 PM2状态: ssh $SERVER 'pm2 status'${NC}" |