部署流程
This commit is contained in:
parent
c37cf4884b
commit
a121ec6572
0
deploy-commands.txt
Normal file
0
deploy-commands.txt
Normal file
79
deploy-to-server.bat
Normal file
79
deploy-to-server.bat
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
@echo off
|
||||
chcp 65001 >nul
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
REM ============================================
|
||||
REM 直播系统一键部署脚本 (Windows版)
|
||||
REM 服务器地址: 1.15.149.240
|
||||
REM ============================================
|
||||
|
||||
set SERVER_IP=1.15.149.240
|
||||
set SERVER_USER=root
|
||||
set DEPLOY_PATH=/opt/zhibo
|
||||
|
||||
echo ==========================================
|
||||
echo 直播系统部署脚本 (Windows版)
|
||||
echo 目标服务器: %SERVER_IP%
|
||||
echo ==========================================
|
||||
echo.
|
||||
|
||||
REM 检查scp和ssh命令
|
||||
where scp >nul 2>&1
|
||||
if %errorlevel% neq 0 (
|
||||
echo 错误: 未找到scp命令
|
||||
echo 请安装OpenSSH客户端或使用Git Bash运行deploy-to-server.sh
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
echo [1/6] 测试SSH连接...
|
||||
ssh -o ConnectTimeout=10 %SERVER_USER%@%SERVER_IP% "echo SSH连接成功"
|
||||
if %errorlevel% neq 0 (
|
||||
echo 错误: 无法连接到服务器
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
echo.
|
||||
echo [2/6] 创建服务器目录结构...
|
||||
ssh %SERVER_USER%@%SERVER_IP% "mkdir -p /opt/zhibo/admin-api /opt/zhibo/front-api /opt/zhibo/admin-web /opt/zhibo/logs /opt/zhibo/scripts"
|
||||
|
||||
echo.
|
||||
echo [3/6] 上传后端JAR包...
|
||||
echo - 上传 Admin API...
|
||||
scp Zhibo/zhibo-h/crmeb-admin/target/Crmeb-admin.jar %SERVER_USER%@%SERVER_IP%:/opt/zhibo/admin-api/
|
||||
|
||||
echo - 上传 Front API...
|
||||
scp Zhibo/zhibo-h/crmeb-front/target/Crmeb-front.jar %SERVER_USER%@%SERVER_IP%:/opt/zhibo/front-api/
|
||||
|
||||
echo.
|
||||
echo [4/6] 上传前端管理界面...
|
||||
scp -r Zhibo/admin/dist/* %SERVER_USER%@%SERVER_IP%:/opt/zhibo/admin-web/
|
||||
|
||||
echo.
|
||||
echo [5/6] 创建服务启动脚本...
|
||||
ssh %SERVER_USER%@%SERVER_IP% "cat > /opt/zhibo/scripts/start-admin-api.sh" < server-scripts/start-admin-api.sh
|
||||
ssh %SERVER_USER%@%SERVER_IP% "cat > /opt/zhibo/scripts/start-front-api.sh" < server-scripts/start-front-api.sh
|
||||
ssh %SERVER_USER%@%SERVER_IP% "chmod +x /opt/zhibo/scripts/*.sh"
|
||||
|
||||
echo.
|
||||
echo [6/6] 上传Nginx配置...
|
||||
scp server-scripts/zhibo.nginx.conf %SERVER_USER%@%SERVER_IP%:/etc/nginx/conf.d/zhibo.conf
|
||||
ssh %SERVER_USER%@%SERVER_IP% "nginx -t && systemctl reload nginx"
|
||||
|
||||
echo.
|
||||
echo ==========================================
|
||||
echo 部署完成!
|
||||
echo ==========================================
|
||||
echo.
|
||||
echo 请在服务器上执行以下命令启动服务:
|
||||
echo ssh %SERVER_USER%@%SERVER_IP%
|
||||
echo cd /opt/zhibo/scripts
|
||||
echo ./start-all.sh
|
||||
echo.
|
||||
echo 服务访问地址:
|
||||
echo - 管理后台: http://%SERVER_IP%
|
||||
echo - Admin API: http://%SERVER_IP%:30001
|
||||
echo - Front API: http://%SERVER_IP%:8081
|
||||
echo.
|
||||
pause
|
||||
269
deploy-to-server.sh
Normal file
269
deploy-to-server.sh
Normal file
|
|
@ -0,0 +1,269 @@
|
|||
#!/bin/bash
|
||||
# ============================================
|
||||
# 直播系统一键部署脚本
|
||||
# 服务器地址: 1.15.149.240
|
||||
# ============================================
|
||||
|
||||
set -e
|
||||
|
||||
# 配置变量
|
||||
SERVER_IP="1.15.149.240"
|
||||
SERVER_USER="root"
|
||||
DEPLOY_PATH="/opt/zhibo"
|
||||
ADMIN_API_PORT=30001
|
||||
FRONT_API_PORT=8081
|
||||
|
||||
echo "=========================================="
|
||||
echo " 直播系统部署脚本"
|
||||
echo " 目标服务器: $SERVER_IP"
|
||||
echo "=========================================="
|
||||
|
||||
# 检查SSH连接
|
||||
echo ""
|
||||
echo "[1/6] 检查SSH连接..."
|
||||
ssh -o ConnectTimeout=10 ${SERVER_USER}@${SERVER_IP} "echo 'SSH连接成功'" || {
|
||||
echo "错误: 无法连接到服务器 ${SERVER_IP}"
|
||||
echo "请确保:"
|
||||
echo " 1. 服务器IP正确"
|
||||
echo " 2. SSH密钥已配置或准备好密码"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# 在服务器上创建目录结构
|
||||
echo ""
|
||||
echo "[2/6] 创建服务器目录结构..."
|
||||
ssh ${SERVER_USER}@${SERVER_IP} << 'ENDSSH'
|
||||
mkdir -p /opt/zhibo/admin-api
|
||||
mkdir -p /opt/zhibo/front-api
|
||||
mkdir -p /opt/zhibo/admin-web
|
||||
mkdir -p /opt/zhibo/logs
|
||||
mkdir -p /opt/zhibo/scripts
|
||||
echo "目录创建完成"
|
||||
ENDSSH
|
||||
|
||||
# 上传后端JAR包
|
||||
echo ""
|
||||
echo "[3/6] 上传后端JAR包..."
|
||||
echo " - 上传 Admin API (Crmeb-admin.jar)..."
|
||||
scp Zhibo/zhibo-h/crmeb-admin/target/Crmeb-admin.jar ${SERVER_USER}@${SERVER_IP}:/opt/zhibo/admin-api/
|
||||
|
||||
echo " - 上传 Front API (Crmeb-front.jar)..."
|
||||
scp Zhibo/zhibo-h/crmeb-front/target/Crmeb-front.jar ${SERVER_USER}@${SERVER_IP}:/opt/zhibo/front-api/
|
||||
|
||||
# 上传前端文件
|
||||
echo ""
|
||||
echo "[4/6] 上传前端管理界面..."
|
||||
scp -r Zhibo/admin/dist/* ${SERVER_USER}@${SERVER_IP}:/opt/zhibo/admin-web/
|
||||
|
||||
# 创建启动脚本
|
||||
echo ""
|
||||
echo "[5/6] 创建服务启动脚本..."
|
||||
ssh ${SERVER_USER}@${SERVER_IP} << 'ENDSSH'
|
||||
# 创建Admin API启动脚本
|
||||
cat > /opt/zhibo/scripts/start-admin-api.sh << 'EOF'
|
||||
#!/bin/bash
|
||||
APP_NAME="Crmeb-admin"
|
||||
APP_PATH="/opt/zhibo/admin-api"
|
||||
LOG_PATH="/opt/zhibo/logs"
|
||||
JAR_FILE="${APP_PATH}/${APP_NAME}.jar"
|
||||
|
||||
# 停止旧进程
|
||||
pid=$(ps -ef | grep "${APP_NAME}.jar" | grep -v grep | awk '{print $2}')
|
||||
if [ -n "$pid" ]; then
|
||||
echo "停止旧进程: $pid"
|
||||
kill -9 $pid
|
||||
sleep 2
|
||||
fi
|
||||
|
||||
# 启动新进程
|
||||
if [ -f "$JAR_FILE" ]; then
|
||||
echo "启动 ${APP_NAME}..."
|
||||
nohup java -Xms512m -Xmx1024m -jar $JAR_FILE \
|
||||
--spring.redis.host=127.0.0.1 \
|
||||
> ${LOG_PATH}/admin-api.log 2>&1 &
|
||||
echo "Admin API 启动成功,端口: 30001"
|
||||
else
|
||||
echo "错误: JAR文件不存在: $JAR_FILE"
|
||||
exit 1
|
||||
fi
|
||||
EOF
|
||||
|
||||
# 创建Front API启动脚本
|
||||
cat > /opt/zhibo/scripts/start-front-api.sh << 'EOF'
|
||||
#!/bin/bash
|
||||
APP_NAME="Crmeb-front"
|
||||
APP_PATH="/opt/zhibo/front-api"
|
||||
LOG_PATH="/opt/zhibo/logs"
|
||||
JAR_FILE="${APP_PATH}/${APP_NAME}.jar"
|
||||
|
||||
# 停止旧进程
|
||||
pid=$(ps -ef | grep "${APP_NAME}.jar" | grep -v grep | awk '{print $2}')
|
||||
if [ -n "$pid" ]; then
|
||||
echo "停止旧进程: $pid"
|
||||
kill -9 $pid
|
||||
sleep 2
|
||||
fi
|
||||
|
||||
# 启动新进程
|
||||
if [ -f "$JAR_FILE" ]; then
|
||||
echo "启动 ${APP_NAME}..."
|
||||
nohup java -Xms512m -Xmx1024m -jar $JAR_FILE \
|
||||
--spring.redis.host=127.0.0.1 \
|
||||
> ${LOG_PATH}/front-api.log 2>&1 &
|
||||
echo "Front API 启动成功,端口: 8081"
|
||||
else
|
||||
echo "错误: JAR文件不存在: $JAR_FILE"
|
||||
exit 1
|
||||
fi
|
||||
EOF
|
||||
|
||||
# 创建停止脚本
|
||||
cat > /opt/zhibo/scripts/stop-all.sh << 'EOF'
|
||||
#!/bin/bash
|
||||
echo "停止所有服务..."
|
||||
pkill -f "Crmeb-admin.jar" 2>/dev/null && echo "Admin API 已停止" || echo "Admin API 未运行"
|
||||
pkill -f "Crmeb-front.jar" 2>/dev/null && echo "Front API 已停止" || echo "Front API 未运行"
|
||||
echo "完成"
|
||||
EOF
|
||||
|
||||
# 创建一键启动脚本
|
||||
cat > /opt/zhibo/scripts/start-all.sh << 'EOF'
|
||||
#!/bin/bash
|
||||
echo "=========================================="
|
||||
echo " 启动所有直播系统服务"
|
||||
echo "=========================================="
|
||||
cd /opt/zhibo/scripts
|
||||
./start-admin-api.sh
|
||||
sleep 5
|
||||
./start-front-api.sh
|
||||
echo ""
|
||||
echo "所有服务启动完成!"
|
||||
echo " - Admin API: http://localhost:30001"
|
||||
echo " - Front API: http://localhost:8081"
|
||||
EOF
|
||||
|
||||
# 创建状态检查脚本
|
||||
cat > /opt/zhibo/scripts/status.sh << 'EOF'
|
||||
#!/bin/bash
|
||||
echo "=========================================="
|
||||
echo " 服务状态检查"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
echo "Admin API (端口 30001):"
|
||||
if pgrep -f "Crmeb-admin.jar" > /dev/null; then
|
||||
echo " 状态: 运行中"
|
||||
pid=$(pgrep -f "Crmeb-admin.jar")
|
||||
echo " PID: $pid"
|
||||
else
|
||||
echo " 状态: 未运行"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "Front API (端口 8081):"
|
||||
if pgrep -f "Crmeb-front.jar" > /dev/null; then
|
||||
echo " 状态: 运行中"
|
||||
pid=$(pgrep -f "Crmeb-front.jar")
|
||||
echo " PID: $pid"
|
||||
else
|
||||
echo " 状态: 未运行"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "端口监听状态:"
|
||||
netstat -tlnp 2>/dev/null | grep -E "30001|8081" || ss -tlnp | grep -E "30001|8081"
|
||||
EOF
|
||||
|
||||
chmod +x /opt/zhibo/scripts/*.sh
|
||||
echo "启动脚本创建完成"
|
||||
ENDSSH
|
||||
|
||||
# 创建Nginx配置
|
||||
echo ""
|
||||
echo "[6/6] 配置Nginx..."
|
||||
ssh ${SERVER_USER}@${SERVER_IP} << 'ENDSSH'
|
||||
# 检查Nginx是否安装
|
||||
if ! command -v nginx &> /dev/null; then
|
||||
echo "Nginx未安装,正在安装..."
|
||||
apt-get update && apt-get install -y nginx || yum install -y nginx
|
||||
fi
|
||||
|
||||
# 创建Nginx配置
|
||||
cat > /etc/nginx/conf.d/zhibo.conf << 'EOF'
|
||||
# 直播系统 - 管理后台前端
|
||||
server {
|
||||
listen 80;
|
||||
server_name admin.zhibo.local; # 可以改成你的域名
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
# 代理公共API
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
# 直播系统 - 前端API (供APP调用)
|
||||
server {
|
||||
listen 8080;
|
||||
server_name _;
|
||||
|
||||
# 代理Front API
|
||||
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
|
||||
echo "Nginx配置完成"
|
||||
ENDSSH
|
||||
|
||||
echo ""
|
||||
echo "=========================================="
|
||||
echo " 部署完成!"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
echo "接下来请在服务器上执行以下命令启动服务:"
|
||||
echo ""
|
||||
echo " ssh ${SERVER_USER}@${SERVER_IP}"
|
||||
echo " cd /opt/zhibo/scripts"
|
||||
echo " ./start-all.sh"
|
||||
echo ""
|
||||
echo "服务访问地址:"
|
||||
echo " - 管理后台: http://${SERVER_IP}"
|
||||
echo " - Admin API: http://${SERVER_IP}:30001"
|
||||
echo " - Front API: http://${SERVER_IP}:8081 (或通过Nginx 8080端口)"
|
||||
echo ""
|
||||
echo "常用命令:"
|
||||
echo " - 启动所有服务: /opt/zhibo/scripts/start-all.sh"
|
||||
echo " - 停止所有服务: /opt/zhibo/scripts/stop-all.sh"
|
||||
echo " - 查看服务状态: /opt/zhibo/scripts/status.sh"
|
||||
echo " - 查看日志: tail -f /opt/zhibo/logs/admin-api.log"
|
||||
echo " tail -f /opt/zhibo/logs/front-api.log"
|
||||
echo ""
|
||||
BIN
live-streaming.zip
Normal file
BIN
live-streaming.zip
Normal file
Binary file not shown.
25
live-streaming/.env.example
Normal file
25
live-streaming/.env.example
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
# ==========================================
|
||||
# 直播服务 Docker 环境配置
|
||||
# 复制此文件为 .env 并修改配置
|
||||
# ==========================================
|
||||
|
||||
# ========== 服务器公网地址 ==========
|
||||
# 你的服务器公网 IP
|
||||
PUBLIC_SRS_HOST=1.15.149.240
|
||||
|
||||
# ========== 端口配置 ==========
|
||||
# API 服务端口
|
||||
API_EXPOSE_PORT=25001
|
||||
|
||||
# SRS RTMP 端口(推流用)
|
||||
SRS_RTMP_EXPOSE_PORT=25002
|
||||
|
||||
# SRS HTTP 端口(拉流用)
|
||||
SRS_HTTP_EXPOSE_PORT=25003
|
||||
|
||||
# SRS API 端口
|
||||
SRS_API_EXPOSE_PORT=1985
|
||||
|
||||
# ========== 公网端口(如果使用端口映射,修改这里)==========
|
||||
PUBLIC_SRS_RTMP_PORT=25002
|
||||
PUBLIC_SRS_HTTP_PORT=25003
|
||||
46
live-streaming/deploy.bat
Normal file
46
live-streaming/deploy.bat
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
@echo off
|
||||
chcp 65001 >nul
|
||||
REM ==========================================
|
||||
REM 直播服务 Docker 部署脚本 (Windows)
|
||||
REM ==========================================
|
||||
|
||||
echo ==========================================
|
||||
echo 直播服务 Docker 部署
|
||||
echo ==========================================
|
||||
|
||||
REM 检查 .env 文件
|
||||
if not exist ".env" (
|
||||
echo ❌ 错误: 未找到 .env 文件
|
||||
echo 请复制 .env.example 为 .env 并修改配置
|
||||
echo copy .env.example .env
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
echo.
|
||||
echo 🔨 构建镜像...
|
||||
docker-compose build
|
||||
|
||||
echo.
|
||||
echo 🚀 启动服务...
|
||||
docker-compose up -d
|
||||
|
||||
echo.
|
||||
echo ✅ 部署完成!
|
||||
echo.
|
||||
echo ==========================================
|
||||
echo 服务状态
|
||||
echo ==========================================
|
||||
docker-compose ps
|
||||
|
||||
echo.
|
||||
echo ==========================================
|
||||
echo 常用命令
|
||||
echo ==========================================
|
||||
echo 查看日志: docker-compose logs -f
|
||||
echo 停止服务: docker-compose down
|
||||
echo 重启服务: docker-compose restart
|
||||
echo 查看状态: docker-compose ps
|
||||
echo.
|
||||
|
||||
pause
|
||||
70
live-streaming/deploy.sh
Normal file
70
live-streaming/deploy.sh
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
#!/bin/bash
|
||||
# ==========================================
|
||||
# 直播服务 Docker 部署脚本
|
||||
# ==========================================
|
||||
|
||||
set -e
|
||||
|
||||
echo "=========================================="
|
||||
echo " 直播服务 Docker 部署"
|
||||
echo "=========================================="
|
||||
|
||||
# 检查 .env 文件
|
||||
if [ ! -f ".env" ]; then
|
||||
echo "❌ 错误: 未找到 .env 文件"
|
||||
echo "请复制 .env.example 为 .env 并修改配置"
|
||||
echo " cp .env.example .env"
|
||||
echo " nano .env"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 加载环境变量
|
||||
source .env
|
||||
|
||||
echo ""
|
||||
echo "📋 当前配置:"
|
||||
echo " - 公网地址: ${PUBLIC_SRS_HOST:-未设置}"
|
||||
echo " - API 端口: ${API_EXPOSE_PORT:-25001}"
|
||||
echo " - RTMP 端口: ${SRS_RTMP_EXPOSE_PORT:-25002}"
|
||||
echo " - HTTP 端口: ${SRS_HTTP_EXPOSE_PORT:-25003}"
|
||||
echo ""
|
||||
|
||||
# 确认部署
|
||||
read -p "是否继续部署? (y/n): " confirm
|
||||
if [ "$confirm" != "y" ]; then
|
||||
echo "已取消部署"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "🔨 构建镜像..."
|
||||
docker-compose build
|
||||
|
||||
echo ""
|
||||
echo "🚀 启动服务..."
|
||||
docker-compose up -d
|
||||
|
||||
echo ""
|
||||
echo "✅ 部署完成!"
|
||||
echo ""
|
||||
echo "=========================================="
|
||||
echo " 服务状态"
|
||||
echo "=========================================="
|
||||
docker-compose ps
|
||||
|
||||
echo ""
|
||||
echo "=========================================="
|
||||
echo " 访问地址"
|
||||
echo "=========================================="
|
||||
echo " API 服务: http://${PUBLIC_SRS_HOST:-localhost}:${API_EXPOSE_PORT:-25001}"
|
||||
echo " RTMP 推流: rtmp://${PUBLIC_SRS_HOST:-localhost}:${SRS_RTMP_EXPOSE_PORT:-25002}/live/[streamKey]"
|
||||
echo " HTTP 拉流: http://${PUBLIC_SRS_HOST:-localhost}:${SRS_HTTP_EXPOSE_PORT:-25003}/live/[streamKey].flv"
|
||||
echo ""
|
||||
echo "=========================================="
|
||||
echo " 常用命令"
|
||||
echo "=========================================="
|
||||
echo " 查看日志: docker-compose logs -f"
|
||||
echo " 停止服务: docker-compose down"
|
||||
echo " 重启服务: docker-compose restart"
|
||||
echo " 查看状态: docker-compose ps"
|
||||
echo ""
|
||||
278
部署指南-1.15.149.240.md
Normal file
278
部署指南-1.15.149.240.md
Normal file
|
|
@ -0,0 +1,278 @@
|
|||
# 直播系统部署指南
|
||||
|
||||
## 服务器信息
|
||||
- **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>
|
||||
```
|
||||
Loading…
Reference in New Issue
Block a user