添加nginx相关配置,首页系统概览添加用户id查询

This commit is contained in:
2025-07-24 09:42:39 +08:00
parent 8800e982ab
commit 913702ea10
8 changed files with 1204 additions and 135 deletions
+255
View File
@@ -0,0 +1,255 @@
#!/bin/bash
# 多客户端部署脚本
# 用于部署和管理3个不同地区客户端的反向代理服务
set -e
# 颜色输出
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# 日志函数
log_info() {
echo -e "${BLUE}[INFO]${NC} $1"
}
log_success() {
echo -e "${GREEN}[SUCCESS]${NC} $1"
}
log_warning() {
echo -e "${YELLOW}[WARNING]${NC} $1"
}
log_error() {
echo -e "${RED}[ERROR]${NC} $1"
}
# 检查依赖
check_dependencies() {
log_info "检查系统依赖..."
# 检查PM2
if ! command -v pm2 &> /dev/null; then
log_error "PM2 未安装,请先安装: npm install -g pm2"
exit 1
fi
# 检查Nginx
if ! command -v nginx &> /dev/null; then
log_warning "Nginx 未安装,请手动安装并配置"
fi
# 检查Node.js
if ! command -v node &> /dev/null; then
log_error "Node.js 未安装"
exit 1
fi
log_success "依赖检查完成"
}
# 构建项目
build_project() {
log_info "构建项目..."
# 安装依赖
if [ -f "package-lock.json" ]; then
npm ci
else
npm install
fi
# 构建项目
npm run build
log_success "项目构建完成"
}
# 创建日志目录
create_log_dirs() {
log_info "创建日志目录..."
mkdir -p logs
mkdir -p /var/log/nginx 2>/dev/null || log_warning "无法创建nginx日志目录,请手动创建"
log_success "日志目录创建完成"
}
# 部署PM2应用
deploy_pm2() {
log_info "部署PM2应用..."
# 停止现有应用
pm2 delete all 2>/dev/null || log_warning "没有运行中的PM2应用"
# 启动新应用
pm2 start ecosystem.config.cjs
# 保存PM2配置
pm2 save
# 设置开机自启
pm2 startup
log_success "PM2应用部署完成"
}
# 配置Nginx
configure_nginx() {
log_info "配置Nginx..."
# 检查配置文件
if [ ! -f "nginx-multi-client.conf" ]; then
log_error "nginx-multi-client.conf 文件不存在"
exit 1
fi
# 复制配置文件到nginx目录
if [ -d "/etc/nginx/sites-available" ]; then
sudo cp nginx-multi-client.conf /etc/nginx/sites-available/docreview-multi-client
sudo ln -sf /etc/nginx/sites-available/docreview-multi-client /etc/nginx/sites-enabled/
elif [ -d "/etc/nginx/conf.d" ]; then
sudo cp nginx-multi-client.conf /etc/nginx/conf.d/docreview-multi-client.conf
else
log_warning "请手动配置Nginx,配置文件: nginx-multi-client.conf"
return
fi
# 测试nginx配置
sudo nginx -t
# 重载nginx
sudo systemctl reload nginx
log_success "Nginx配置完成"
}
# 检查服务状态
check_status() {
log_info "检查服务状态..."
echo "\n=== PM2 应用状态 ==="
pm2 status
echo "\n=== 端口监听状态 ==="
netstat -tlnp | grep -E ':(51701|51702|51703|51704)'
echo "\n=== 服务健康检查 ==="
for port in 51701 51702 51703 51704; do
if curl -s "http://10.79.97.17:$port/health" > /dev/null; then
log_success "端口 $port: 正常"
else
log_error "端口 $port: 异常"
fi
done
}
# 显示帮助信息
show_help() {
echo "多客户端部署脚本"
echo ""
echo "用法: $0 [选项]"
echo ""
echo "选项:"
echo " deploy 完整部署(构建+PM2+Nginx"
echo " build 仅构建项目"
echo " pm2 仅部署PM2应用"
echo " nginx 仅配置Nginx"
echo " status 检查服务状态"
echo " stop 停止所有服务"
echo " restart 重启所有服务"
echo " logs 查看日志"
echo " help 显示帮助信息"
echo ""
echo "客户端访问地址:"
echo " 客户端A: http://10.79.97.17:51701"
echo " 客户端B: http://10.79.97.17:51702"
echo " 客户端C: http://10.79.97.17:51704"
echo " 主服务: http://10.79.97.17:51703"
}
# 停止服务
stop_services() {
log_info "停止服务..."
pm2 stop all
log_success "服务已停止"
}
# 重启服务
restart_services() {
log_info "重启服务..."
pm2 restart all
log_success "服务已重启"
}
# 查看日志
show_logs() {
echo "选择要查看的日志:"
echo "1) 主服务日志"
echo "2) 客户端A日志"
echo "3) 客户端B日志"
echo "4) 客户端C日志"
echo "5) 所有日志"
read -p "请选择 (1-5): " choice
case $choice in
1) pm2 logs docreview-main ;;
2) pm2 logs docreview-client-a ;;
3) pm2 logs docreview-client-b ;;
4) pm2 logs docreview-client-c ;;
5) pm2 logs ;;
*) log_error "无效选择" ;;
esac
}
# 主函数
main() {
case "${1:-help}" in
"deploy")
check_dependencies
create_log_dirs
build_project
deploy_pm2
configure_nginx
check_status
;;
"build")
build_project
;;
"pm2")
check_dependencies
create_log_dirs
deploy_pm2
;;
"nginx")
configure_nginx
;;
"status")
check_status
;;
"stop")
stop_services
;;
"restart")
restart_services
;;
"logs")
show_logs
;;
"help")
show_help
;;
*)
log_error "未知选项: $1"
show_help
exit 1
;;
esac
}
# 执行主函数
main "$@"