279 lines
5.8 KiB
Markdown
279 lines
5.8 KiB
Markdown
|
|
# 直播系统部署指南
|
|||
|
|
|
|||
|
|
## 服务器信息
|
|||
|
|
- **IP地址**: 1.15.149.240
|
|||
|
|
- **部署目录**: /opt/zhibo
|
|||
|
|
|
|||
|
|
## 需要部署的服务
|
|||
|
|
|
|||
|
|
| 服务 | 端口 | 说明 |
|
|||
|
|
|------|------|------|
|
|||
|
|
| Admin API | 30001 | 管理后台API |
|
|||
|
|
| Front API | 8081 | 前端/APP API |
|
|||
|
|
| Admin Web | 80 | 管理后台界面 |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 第一步:上传文件到服务器
|
|||
|
|
|
|||
|
|
### 方法1:使用SCP命令(推荐)
|
|||
|
|
|
|||
|
|
打开PowerShell或CMD,在项目根目录执行:
|
|||
|
|
|
|||
|
|
```powershell
|
|||
|
|
# 1. 创建服务器目录
|
|||
|
|
ssh root@1.15.149.240 "mkdir -p /opt/zhibo/{admin-api,front-api,admin-web,logs,scripts}"
|
|||
|
|
|
|||
|
|
# 2. 上传Admin API JAR包
|
|||
|
|
scp Zhibo/zhibo-h/crmeb-admin/target/Crmeb-admin.jar root@1.15.149.240:/opt/zhibo/admin-api/
|
|||
|
|
|
|||
|
|
# 3. 上传Front API JAR包
|
|||
|
|
scp Zhibo/zhibo-h/crmeb-front/target/Crmeb-front.jar root@1.15.149.240:/opt/zhibo/front-api/
|
|||
|
|
|
|||
|
|
# 4. 上传前端文件
|
|||
|
|
scp -r Zhibo/admin/dist/* root@1.15.149.240:/opt/zhibo/admin-web/
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 方法2:使用SFTP工具
|
|||
|
|
|
|||
|
|
使用FileZilla、WinSCP等工具连接服务器,手动上传:
|
|||
|
|
- `Zhibo/zhibo-h/crmeb-admin/target/Crmeb-admin.jar` → `/opt/zhibo/admin-api/`
|
|||
|
|
- `Zhibo/zhibo-h/crmeb-front/target/Crmeb-front.jar` → `/opt/zhibo/front-api/`
|
|||
|
|
- `Zhibo/admin/dist/` 目录下所有文件 → `/opt/zhibo/admin-web/`
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 第二步:SSH登录服务器配置
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
ssh root@1.15.149.240
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2.1 创建启动脚本
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 创建Admin API启动脚本
|
|||
|
|
cat > /opt/zhibo/scripts/start-admin-api.sh << 'EOF'
|
|||
|
|
#!/bin/bash
|
|||
|
|
APP_NAME="Crmeb-admin"
|
|||
|
|
JAR_FILE="/opt/zhibo/admin-api/${APP_NAME}.jar"
|
|||
|
|
LOG_FILE="/opt/zhibo/logs/admin-api.log"
|
|||
|
|
|
|||
|
|
# 停止旧进程
|
|||
|
|
pid=$(pgrep -f "${APP_NAME}.jar")
|
|||
|
|
[ -n "$pid" ] && kill -9 $pid && echo "停止旧进程: $pid" && sleep 2
|
|||
|
|
|
|||
|
|
# 启动
|
|||
|
|
nohup java -Xms512m -Xmx1024m -jar $JAR_FILE \
|
|||
|
|
--spring.redis.host=127.0.0.1 \
|
|||
|
|
> $LOG_FILE 2>&1 &
|
|||
|
|
echo "Admin API 启动成功,端口: 30001"
|
|||
|
|
EOF
|
|||
|
|
|
|||
|
|
# 创建Front API启动脚本
|
|||
|
|
cat > /opt/zhibo/scripts/start-front-api.sh << 'EOF'
|
|||
|
|
#!/bin/bash
|
|||
|
|
APP_NAME="Crmeb-front"
|
|||
|
|
JAR_FILE="/opt/zhibo/front-api/${APP_NAME}.jar"
|
|||
|
|
LOG_FILE="/opt/zhibo/logs/front-api.log"
|
|||
|
|
|
|||
|
|
# 停止旧进程
|
|||
|
|
pid=$(pgrep -f "${APP_NAME}.jar")
|
|||
|
|
[ -n "$pid" ] && kill -9 $pid && echo "停止旧进程: $pid" && sleep 2
|
|||
|
|
|
|||
|
|
# 启动
|
|||
|
|
nohup java -Xms512m -Xmx1024m -jar $JAR_FILE \
|
|||
|
|
--spring.redis.host=127.0.0.1 \
|
|||
|
|
> $LOG_FILE 2>&1 &
|
|||
|
|
echo "Front API 启动成功,端口: 8081"
|
|||
|
|
EOF
|
|||
|
|
|
|||
|
|
# 创建一键启动脚本
|
|||
|
|
cat > /opt/zhibo/scripts/start-all.sh << 'EOF'
|
|||
|
|
#!/bin/bash
|
|||
|
|
echo "启动所有服务..."
|
|||
|
|
/opt/zhibo/scripts/start-admin-api.sh
|
|||
|
|
sleep 5
|
|||
|
|
/opt/zhibo/scripts/start-front-api.sh
|
|||
|
|
echo "完成!"
|
|||
|
|
EOF
|
|||
|
|
|
|||
|
|
# 创建停止脚本
|
|||
|
|
cat > /opt/zhibo/scripts/stop-all.sh << 'EOF'
|
|||
|
|
#!/bin/bash
|
|||
|
|
pkill -f "Crmeb-admin.jar" && echo "Admin API 已停止"
|
|||
|
|
pkill -f "Crmeb-front.jar" && echo "Front API 已停止"
|
|||
|
|
EOF
|
|||
|
|
|
|||
|
|
# 赋予执行权限
|
|||
|
|
chmod +x /opt/zhibo/scripts/*.sh
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2.2 配置Nginx
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 创建Nginx配置
|
|||
|
|
cat > /etc/nginx/conf.d/zhibo.conf << 'EOF'
|
|||
|
|
# 管理后台
|
|||
|
|
server {
|
|||
|
|
listen 80;
|
|||
|
|
server_name _;
|
|||
|
|
|
|||
|
|
root /opt/zhibo/admin-web;
|
|||
|
|
index index.html;
|
|||
|
|
|
|||
|
|
location / {
|
|||
|
|
try_files $uri $uri/ /index.html;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
# Admin API代理
|
|||
|
|
location /api/admin/ {
|
|||
|
|
proxy_pass http://127.0.0.1:30001/api/admin/;
|
|||
|
|
proxy_set_header Host $host;
|
|||
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|||
|
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
location /api/public/ {
|
|||
|
|
proxy_pass http://127.0.0.1:30001/api/public/;
|
|||
|
|
proxy_set_header Host $host;
|
|||
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
# Front API (供APP调用)
|
|||
|
|
server {
|
|||
|
|
listen 8080;
|
|||
|
|
server_name _;
|
|||
|
|
|
|||
|
|
location / {
|
|||
|
|
proxy_pass http://127.0.0.1:8081;
|
|||
|
|
proxy_set_header Host $host;
|
|||
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|||
|
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|||
|
|
|
|||
|
|
# WebSocket支持
|
|||
|
|
proxy_http_version 1.1;
|
|||
|
|
proxy_set_header Upgrade $http_upgrade;
|
|||
|
|
proxy_set_header Connection "upgrade";
|
|||
|
|
proxy_read_timeout 86400;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
EOF
|
|||
|
|
|
|||
|
|
# 测试并重载Nginx
|
|||
|
|
nginx -t && systemctl reload nginx
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 第三步:启动服务
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 启动所有服务
|
|||
|
|
/opt/zhibo/scripts/start-all.sh
|
|||
|
|
|
|||
|
|
# 查看日志
|
|||
|
|
tail -f /opt/zhibo/logs/admin-api.log
|
|||
|
|
tail -f /opt/zhibo/logs/front-api.log
|
|||
|
|
|
|||
|
|
# 检查端口
|
|||
|
|
netstat -tlnp | grep -E "30001|8081"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 第四步:验证部署
|
|||
|
|
|
|||
|
|
### 检查服务状态
|
|||
|
|
```bash
|
|||
|
|
# 检查进程
|
|||
|
|
ps aux | grep -E "Crmeb-admin|Crmeb-front"
|
|||
|
|
|
|||
|
|
# 检查端口
|
|||
|
|
ss -tlnp | grep -E "30001|8081|80|8080"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 测试接口
|
|||
|
|
```bash
|
|||
|
|
# 测试Admin API
|
|||
|
|
curl http://localhost:30001/api/public/version
|
|||
|
|
|
|||
|
|
# 测试Front API
|
|||
|
|
curl http://localhost:8081/api/front/index
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 访问地址
|
|||
|
|
|
|||
|
|
| 服务 | 地址 |
|
|||
|
|
|------|------|
|
|||
|
|
| 管理后台 | http://1.15.149.240 |
|
|||
|
|
| Admin API | http://1.15.149.240:30001 |
|
|||
|
|
| Front API | http://1.15.149.240:8081 |
|
|||
|
|
| Front API (Nginx) | http://1.15.149.240:8080 |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 常用命令
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 启动所有服务
|
|||
|
|
/opt/zhibo/scripts/start-all.sh
|
|||
|
|
|
|||
|
|
# 停止所有服务
|
|||
|
|
/opt/zhibo/scripts/stop-all.sh
|
|||
|
|
|
|||
|
|
# 单独启动Admin API
|
|||
|
|
/opt/zhibo/scripts/start-admin-api.sh
|
|||
|
|
|
|||
|
|
# 单独启动Front API
|
|||
|
|
/opt/zhibo/scripts/start-front-api.sh
|
|||
|
|
|
|||
|
|
# 查看日志
|
|||
|
|
tail -100f /opt/zhibo/logs/admin-api.log
|
|||
|
|
tail -100f /opt/zhibo/logs/front-api.log
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## APP配置
|
|||
|
|
|
|||
|
|
部署完成后,需要修改Android APP的API地址:
|
|||
|
|
|
|||
|
|
文件:`android-app/app/src/main/java/com/example/livestreaming/net/ApiConfig.java`
|
|||
|
|
|
|||
|
|
```java
|
|||
|
|
public static final String BASE_URL = "http://1.15.149.240:8081/";
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
然后重新编译APK。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 故障排查
|
|||
|
|
|
|||
|
|
### 服务启动失败
|
|||
|
|
```bash
|
|||
|
|
# 查看详细日志
|
|||
|
|
cat /opt/zhibo/logs/admin-api.log
|
|||
|
|
cat /opt/zhibo/logs/front-api.log
|
|||
|
|
|
|||
|
|
# 检查Java版本
|
|||
|
|
java -version # 需要JDK 1.8
|
|||
|
|
|
|||
|
|
# 检查Redis是否运行
|
|||
|
|
redis-cli ping
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 端口被占用
|
|||
|
|
```bash
|
|||
|
|
# 查看端口占用
|
|||
|
|
lsof -i :30001
|
|||
|
|
lsof -i :8081
|
|||
|
|
|
|||
|
|
# 杀掉占用进程
|
|||
|
|
kill -9 <PID>
|
|||
|
|
```
|