f9ff8302ae
✅ 前端修复完成: - 修复空白页面问题,部署正确的首页内容 - 访问地址: http://47.111.10.27/emotion/happy/ - 与开发环境完全一致的Vue首页 🔧 Nacos配置修复: - 修复微服务注册问题 - 统一日志路径配置 - 优化部署脚本 📋 脚本优化: - 删除多余部署脚本 - 保留核心脚本 - 支持参数控制
191 lines
5.9 KiB
Bash
Executable File
191 lines
5.9 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# 修复Nacos配置和微服务注册问题
|
|
# 作者: emotion-museum
|
|
# 日期: 2025-07-21
|
|
|
|
set -e
|
|
|
|
REMOTE_HOST="root@47.111.10.27"
|
|
REMOTE_IP="47.111.10.27"
|
|
|
|
# 颜色输出
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
BLUE='\033[0;34m'
|
|
NC='\033[0m'
|
|
|
|
log_info() {
|
|
echo -e "${BLUE}[INFO]${NC} $(date '+%Y-%m-%d %H:%M:%S') - $1"
|
|
}
|
|
|
|
log_success() {
|
|
echo -e "${GREEN}[SUCCESS]${NC} $(date '+%Y-%m-%d %H:%M:%S') - $1"
|
|
}
|
|
|
|
log_warning() {
|
|
echo -e "${YELLOW}[WARNING]${NC} $(date '+%Y-%m-%d %H:%M:%S') - $1"
|
|
}
|
|
|
|
log_error() {
|
|
echo -e "${RED}[ERROR]${NC} $(date '+%Y-%m-%d %H:%M:%S') - $1"
|
|
}
|
|
|
|
# 检查SSH连接
|
|
check_connection() {
|
|
log_info "检查远程服务器连接..."
|
|
if ssh -o ConnectTimeout=10 "$REMOTE_HOST" "echo 'SSH连接成功'" > /dev/null 2>&1; then
|
|
log_success "远程服务器连接正常"
|
|
else
|
|
log_error "无法连接到远程服务器: $REMOTE_HOST"
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
# 修复Nacos容器配置
|
|
fix_nacos_container() {
|
|
log_info "修复Nacos容器配置..."
|
|
|
|
ssh "$REMOTE_HOST" "
|
|
# 停止现有Nacos容器
|
|
docker stop emotion-nacos 2>/dev/null || true
|
|
docker rm emotion-nacos 2>/dev/null || true
|
|
|
|
# 启动新的Nacos容器,确保正确的网络配置
|
|
docker run -d \\
|
|
--name emotion-nacos \\
|
|
--restart unless-stopped \\
|
|
-p 8848:8848 \\
|
|
-p 9848:9848 \\
|
|
-p 9849:9849 \\
|
|
-v /data/programs/nacos/logs:/home/nacos/logs \\
|
|
-v /data/programs/nacos/data:/home/nacos/data \\
|
|
-e MODE=standalone \\
|
|
-e PREFER_HOST_MODE=hostname \\
|
|
-e SPRING_DATASOURCE_PLATFORM=mysql \\
|
|
-e MYSQL_SERVICE_HOST=emotion-mysql \\
|
|
-e MYSQL_SERVICE_PORT=3306 \\
|
|
-e MYSQL_SERVICE_DB_NAME=nacos_config \\
|
|
-e MYSQL_SERVICE_USER=root \\
|
|
-e MYSQL_SERVICE_PASSWORD='EmotionMuseum2025*#' \\
|
|
-e NACOS_AUTH_ENABLE=true \\
|
|
-e NACOS_AUTH_TOKEN_EXPIRE_SECONDS=18000 \\
|
|
-e NACOS_AUTH_TOKEN=SecretKey012345678901234567890123456789012345678901234567890123456789 \\
|
|
-e NACOS_AUTH_IDENTITY_KEY=serverIdentity \\
|
|
-e NACOS_AUTH_IDENTITY_VALUE=security \\
|
|
--network bridge \\
|
|
nacos/nacos-server:v2.2.0
|
|
|
|
echo 'Nacos容器启动完成'
|
|
|
|
# 等待Nacos启动
|
|
echo '等待Nacos启动...'
|
|
sleep 30
|
|
|
|
# 检查Nacos状态
|
|
curl -f -s http://localhost:8848/nacos/v1/console/health || echo 'Nacos健康检查失败'
|
|
"
|
|
|
|
log_success "Nacos容器配置修复完成"
|
|
}
|
|
|
|
# 修复微服务配置
|
|
fix_microservice_config() {
|
|
log_info "修复微服务配置..."
|
|
|
|
# 更新所有微服务的配置文件
|
|
for service in gateway user ai auth record growth explore reward websocket stats; do
|
|
log_info "更新 emotion-$service 配置..."
|
|
|
|
# 检查配置文件是否存在
|
|
if [ -f "backend/emotion-$service/src/main/resources/application.yml" ]; then
|
|
# 备份原始配置
|
|
cp "backend/emotion-$service/src/main/resources/application.yml" "backend/emotion-$service/src/main/resources/application.yml.bak"
|
|
|
|
# 更新Nacos配置
|
|
sed -i.bak "s/127.0.0.1:8848/$REMOTE_IP:8848/g" "backend/emotion-$service/src/main/resources/application.yml"
|
|
sed -i.bak "s/localhost:8848/$REMOTE_IP:8848/g" "backend/emotion-$service/src/main/resources/application.yml"
|
|
|
|
# 更新日志配置
|
|
if grep -q "logging:" "backend/emotion-$service/src/main/resources/application.yml"; then
|
|
sed -i.bak "s|logging:|logging:\\n file:\\n path: /data/logs/emotion-museum/$service|g" "backend/emotion-$service/src/main/resources/application.yml"
|
|
else
|
|
echo "
|
|
logging:
|
|
file:
|
|
path: /data/logs/emotion-museum/$service
|
|
" >> "backend/emotion-$service/src/main/resources/application.yml"
|
|
fi
|
|
|
|
log_success "emotion-$service 配置已更新"
|
|
else
|
|
log_warning "emotion-$service 配置文件不存在"
|
|
fi
|
|
done
|
|
|
|
log_success "微服务配置修复完成"
|
|
}
|
|
|
|
# 重新构建和部署微服务
|
|
rebuild_and_deploy() {
|
|
log_info "重新构建和部署微服务..."
|
|
|
|
# 构建所有服务
|
|
cd backend
|
|
./build-all.sh
|
|
|
|
# 部署到远程服务器
|
|
./deploy-remote.sh
|
|
|
|
cd ..
|
|
|
|
log_success "微服务重新部署完成"
|
|
}
|
|
|
|
# 检查微服务注册状态
|
|
check_service_registration() {
|
|
log_info "检查微服务注册状态..."
|
|
|
|
# 等待服务启动
|
|
sleep 30
|
|
|
|
# 检查Nacos服务列表
|
|
ssh "$REMOTE_HOST" "
|
|
echo '检查Nacos服务列表...'
|
|
curl -s -X GET 'http://localhost:8848/nacos/v1/ns/service/list?pageNo=1&pageSize=10' \\
|
|
-H 'Content-Type: application/x-www-form-urlencoded' \\
|
|
| grep -o '\"count\":[0-9]*' || echo 'Nacos服务列表获取失败'
|
|
|
|
echo ''
|
|
echo '检查微服务健康状态...'
|
|
for port in 19000 19001 19002 19008; do
|
|
echo -n \"端口 \$port: \"
|
|
curl -f -s \"http://localhost:\$port/actuator/health\" > /dev/null && echo '✅ 健康' || echo '❌ 未就绪'
|
|
done
|
|
"
|
|
|
|
log_success "微服务注册检查完成"
|
|
}
|
|
|
|
# 主函数
|
|
main() {
|
|
log_info "🚀 开始修复Nacos配置和微服务注册问题..."
|
|
|
|
check_connection
|
|
fix_nacos_container
|
|
fix_microservice_config
|
|
rebuild_and_deploy
|
|
check_service_registration
|
|
|
|
log_success "🎉 Nacos配置和微服务注册问题修复完成!"
|
|
echo ""
|
|
echo "📋 访问信息:"
|
|
echo " Nacos控制台: http://47.111.10.27:8848/nacos"
|
|
echo " API网关: http://47.111.10.27:19000"
|
|
echo " 日志目录: /data/logs/emotion-museum/{service}"
|
|
}
|
|
|
|
# 执行主函数
|
|
main "$@"
|