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和反向代理。
```
This commit is contained in:
2025-09-11 17:11:12 +08:00
parent 216cf80eab
commit bd379d505c
6 changed files with 597 additions and 7 deletions

75
scripts/start-server.sh Normal file
View File

@@ -0,0 +1,75 @@
#!/bin/bash
# 锡林郭勒盟智慧养殖平台 - 生产环境启动脚本
# 服务器目录: /data/nodejs/xlxumu/
TARGET_DIR="/data/nodejs/xlxumu"
APP_DIR="$TARGET_DIR/backend/api"
# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
echo -e "${GREEN}🚀 启动锡林郭勒盟智慧养殖平台API服务${NC}"
# 检查Node.js是否安装
if ! command -v node &> /dev/null; then
echo -e "${RED}❌ Node.js未安装请先安装Node.js${NC}"
exit 1
fi
# 检查npm是否安装
if ! command -v npm &> /dev/null; then
echo -e "${RED}❌ npm未安装请先安装npm${NC}"
exit 1
fi
# 检查PM2是否安装
if ! command -v pm2 &> /dev/null; then
echo -e "${YELLOW}📦 安装PM2...${NC}"
npm install -g pm2
fi
# 进入应用目录
cd $APP_DIR
# 检查目录是否存在
if [ ! -d "$APP_DIR" ]; then
echo -e "${RED}❌ 应用目录不存在: $APP_DIR${NC}"
exit 1
fi
# 检查package.json是否存在
if [ ! -f "package.json" ]; then
echo -e "${RED}❌ package.json不存在${NC}"
exit 1
fi
# 安装依赖
echo -e "${YELLOW}📦 安装项目依赖...${NC}"
npm install --production
# 停止现有服务(如果存在)
echo -e "${YELLOW}🛑 停止现有服务...${NC}"
pm2 delete xlxumu-api 2>/dev/null || true
# 启动服务
echo -e "${YELLOW}🚀 启动API服务...${NC}"
pm2 start server.js --name xlxumu-api --env production
# 配置PM2开机自启
echo -e "${YELLOW}⚙️ 配置PM2开机自启...${NC}"
pm2 startup
pm2 save
# 显示服务状态
echo -e "${GREEN}✅ 服务启动完成!${NC}"
echo -e "${GREEN}📊 当前服务状态:${NC}"
pm2 status xlxumu-api
echo -e "${GREEN}🌐 API服务运行在: http://localhost:3350${NC}"
echo -e "${GREEN}📋 查看详细日志: pm2 logs xlxumu-api${NC}"
echo -e "${GREEN}🔄 重启服务: pm2 restart xlxumu-api${NC}"
echo -e "${GREEN}⏹️ 停止服务: pm2 stop xlxumu-api${NC}"