# 保险系统部署指南

## 部署架构

```
用户访问: https://ad.ningmuyun.com/insurance/
    ↓
nginx (443端口)
    ↓
前端静态文件: /var/www/insurance-admin-system/dist/
    ↓
API请求: /insurance/api/* → 代理到后端 3000端口
```

## 部署步骤

### 1. 服务器准备

```bash
# 安装必要软件
sudo apt update
sudo apt install nginx nodejs npm pm2 -y

# 创建项目目录
sudo mkdir -p /var/www/insurance-admin-system
sudo mkdir -p /var/www/insurance-backend
```

### 2. 部署前端

```bash
# 上传前端构建文件到服务器
scp -r insurance_admin-system/dist/* user@49.51.70.206:/var/www/insurance-admin-system/

# 设置权限
sudo chown -R www-data:www-data /var/www/insurance-admin-system
sudo chmod -R 755 /var/www/insurance-admin-system
```

### 3. 部署后端

```bash
# 上传后端代码到服务器
scp -r insurance_backend/* user@49.51.70.206:/var/www/insurance-backend/

# 安装依赖
cd /var/www/insurance-backend
npm install --production

# 创建环境变量文件
cp .env.example .env
# 编辑 .env 文件，设置正确的数据库连接信息
```

### 4. 配置nginx

```bash
# 复制nginx配置
sudo cp /var/www/insurance-backend/nginx-ad.ningmuyun.com.conf /etc/nginx/sites-available/ad.ningmuyun.com

# 启用站点
sudo ln -sf /etc/nginx/sites-available/ad.ningmuyun.com /etc/nginx/sites-enabled/

# 测试配置
sudo nginx -t

# 重启nginx
sudo systemctl restart nginx
```

### 5. 启动后端服务

```bash
cd /var/www/insurance-backend

# 给脚本执行权限
chmod +x start.sh deploy.sh

# 启动服务
./start.sh
```

## 配置说明

### 前端配置
- **baseURL**: `/insurance/api`
- **访问地址**: `https://ad.ningmuyun.com/insurance/`

### 后端配置
- **端口**: 3000
- **进程管理**: PM2
- **环境**: production

### nginx配置
- **SSL端口**: 443
- **前端路径**: `/insurance/` → 静态文件
- **API路径**: `/insurance/api/` → 代理到后端3000端口

## 服务管理

### PM2命令
```bash
# 查看服务状态
pm2 status

# 查看日志
pm2 logs insurance-backend

# 重启服务
pm2 restart insurance-backend

# 停止服务
pm2 stop insurance-backend

# 监控面板
pm2 monit
```

### nginx命令
```bash
# 测试配置
sudo nginx -t

# 重新加载配置
sudo systemctl reload nginx

# 重启服务
sudo systemctl restart nginx

# 查看状态
sudo systemctl status nginx
```

## 故障排除

### 1. 前端无法访问
- 检查nginx配置是否正确
- 检查SSL证书是否有效
- 检查静态文件路径是否正确

### 2. API请求失败
- 检查后端服务是否运行: `pm2 status`
- 检查nginx代理配置
- 检查CORS设置
- 查看后端日志: `pm2 logs insurance-backend`

### 3. 数据库连接问题
- 检查数据库服务是否运行
- 检查.env文件中的数据库配置
- 检查防火墙设置

## 监控和维护

### 日志位置
- nginx日志: `/var/log/nginx/`
- 后端日志: `/var/www/insurance-backend/logs/`
- PM2日志: `pm2 logs`

### 定期维护
- 定期清理日志文件
- 监控服务器资源使用情况
- 更新SSL证书
- 备份数据库
