news 2026/6/25 22:49:48

高效运维:利用宝塔面板优化Ruoyi项目的持续部署流程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
高效运维:利用宝塔面板优化Ruoyi项目的持续部署流程

高效运维:宝塔面板与Ruoyi项目的持续部署实战指南

1. 环境准备与基础配置

在开始部署Ruoyi项目之前,确保服务器环境已经准备就绪。对于大多数生产环境,推荐使用CentOS 7.x或Ubuntu 20.04 LTS作为操作系统。宝塔面板支持这两种主流Linux发行版,且对资源消耗较低。

服务器基础配置建议

  • CPU:至少2核
  • 内存:4GB以上(Java应用内存需求较高)
  • 磁盘:40GB SSD(数据库和日志文件会占用空间)
  • 带宽:3Mbps以上(根据用户量可适当增加)

安装宝塔面板非常简单,只需在服务器上执行以下命令:

# CentOS yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec # Ubuntu/Debian wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh ed8484bec

安装完成后,记得在服务器安全组中放行以下端口:

端口号用途备注
8888宝塔面板建议安装后修改端口
888phpMyAdmin数据库管理
80HTTPWeb服务
443HTTPS安全Web服务
3306MySQL数据库服务
6379Redis缓存服务
8080应用默认端口Ruoyi后端常用端口

2. Ruoyi后端部署优化

Ruoyi后端基于SpringBoot框架,部署时需要特别注意配置文件的调整和依赖管理。以下是关键步骤:

  1. 数据库准备

    • 在宝塔面板中创建MySQL数据库
    • 导入Ruoyi提供的SQL脚本(通常包括ry_xxxx.sql和quartz.sql)
    • 确保字符集为utf8mb4以支持完整Unicode字符
  2. 配置文件调整: 修改application-druid.yml中的数据库连接信息:

spring: datasource: druid: master: url: jdbc:mysql://localhost:3306/ry-vue?useSSL=false&serverTimezone=Asia/Shanghai username: your_username password: your_password
  1. 日志配置: 在logback.xml中配置日志路径,确保服务器上有对应目录:
<property name="log.path" value="/home/ruoyi/logs" />
  1. 打包与上传: 使用Maven打包项目,推荐使用以下命令确保生产环境配置:
mvn clean package -Pprod -DskipTests

上传生成的ruoyi-admin.jar到服务器后,通过宝塔的Java项目管理器进行部署:

关键配置项

  • 项目类型:SpringBoot
  • JDK版本:推荐1.8或与开发环境一致
  • 项目端口:与application.yml中配置一致
  • 开机自启:建议开启

3. 前端部署与Nginx优化

Ruoyi前端基于Vue.js,部署时需要特别注意生产环境配置和Nginx优化。

  1. 前端打包: 修改.env.production中的API地址:
VUE_APP_BASE_API = 'http://your-domain.com/prod-api'

执行构建命令:

npm run build:prod
  1. Nginx配置优化: 以下是一个高性能的Nginx配置示例:
server { listen 80; server_name your-domain.com; # 前端静态资源 location / { root /www/wwwroot/ruoyi-ui/dist; try_files $uri $uri/ /index.html; index index.html; # 开启gzip压缩 gzip_static on; expires 1y; add_header Cache-Control "public"; } # 后端API代理 location /prod-api/ { proxy_pass http://127.0.0.1:8080/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 长连接优化 proxy_http_version 1.1; proxy_set_header Connection ""; # 超时设置 proxy_connect_timeout 60s; proxy_read_timeout 600s; proxy_send_timeout 600s; } # 静态资源缓存 location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ { expires 365d; add_header Cache-Control "public, no-transform"; } }
  1. 性能优化技巧
    • 开启Brotli压缩(比Gzip更高效)
    • 配置HTTP/2提升加载速度
    • 使用CDN加速静态资源
    • 配置合适的缓存策略

4. 持续集成与自动化部署

要实现真正的DevOps流程,可以配置自动化部署方案。以下是基于宝塔Webhook和Git的自动化部署实现:

  1. 宝塔Webhook配置
    • 在宝塔面板创建Webhook
    • 设置Git仓库的推送事件触发
    • 编写部署脚本

示例部署脚本deploy.sh

#!/bin/bash # 拉取最新代码 cd /www/wwwroot/ruoyi git pull origin master # 构建后端 mvn clean package -Pprod -DskipTests # 重启Java项目 bt restart java_project_name # 构建前端 cd /www/wwwroot/ruoyi-ui npm install npm run build:prod # 刷新Nginx nginx -s reload
  1. Git仓库配置: 在项目的.git/hooks/post-receive中添加:
#!/bin/sh curl -X POST http://your-server-ip:8888/hook?token=your_webhook_token
  1. 备份策略: 使用宝塔的计划任务配置自动备份:
  • 数据库每日全量备份
  • 项目代码每周备份
  • 备份文件同步到云存储

5. 监控与故障排查

完善的监控系统是运维的重要保障。宝塔面板提供基础监控,但对于生产环境建议增加以下监控项:

  1. 基础资源监控

    • CPU、内存、磁盘使用率
    • 网络流量
    • 进程状态
  2. 应用性能监控

    • JVM内存使用情况
    • GC日志分析
    • SQL执行效率
  3. 日志分析: 配置ELK栈集中管理日志:

# 安装Filebeat wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.14.0-linux-x86_64.tar.gz tar -xzf filebeat-7.14.0-linux-x86_64.tar.gz
  1. 常见问题排查
    • 端口冲突:使用netstat -tunlp检查
    • 内存不足:调整JVM参数-Xms512m -Xmx1024m
    • 数据库连接池耗尽:优化Druid配置

6. 安全加固措施

部署完成后,必须进行安全加固:

  1. 服务器安全

    • 修改SSH默认端口
    • 禁用root远程登录
    • 配置fail2ban防止暴力破解
  2. 宝塔面板安全

    • 修改默认8888端口
    • 设置复杂密码
    • 开启BasicAuth二次验证
  3. 应用安全

    • 定期更新依赖库
    • 配置WAF防火墙规则
    • 启用HTTPS加密
  4. 数据库安全

    • 限制MySQL只允许本地连接
    • 定期更改数据库密码
    • 开启binlog用于数据恢复

在实际项目中,我们曾遇到因未配置日志轮转导致磁盘爆满的情况。通过配置logrotate解决了这个问题:

# /etc/logrotate.d/ruoyi /home/ruoyi/logs/*.log { daily missingok rotate 30 compress delaycompress notifempty create 0640 root root sharedscripts postrotate /usr/bin/find /home/ruoyi/logs/ -name "*.log" -mtime +30 -exec rm -f {} \; endscript }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/25 17:47:33

国产操作系统容灾启示录:基于银河麒麟案例的运维避坑指南

国产操作系统容灾实战&#xff1a;银河麒麟文件系统修复深度解析 1. 异常断电引发的系统灾难现场还原 那个加班的深夜&#xff0c;机房空调突然跳闸&#xff0c;整排服务器瞬间断电。当运维人员重新启动银河麒麟V10系统时&#xff0c;熟悉的图形界面没有出现&#xff0c;取而代…

作者头像 李华
网站建设 2026/6/22 8:36:57

LabVIEW设备检测的隐形陷阱:当MAX与VISA不再可靠时

LabVIEW设备检测的隐形陷阱&#xff1a;当MAX与VISA不再可靠时 工业自动化测试环境中&#xff0c;LabVIEW开发者常遇到一个令人头疼的场景——昨天还能正常工作的数据采集设备&#xff0c;今天突然在MAX中消失得无影无踪。更令人崩溃的是&#xff0c;设备管理器显示一切正常&am…

作者头像 李华
网站建设 2026/6/24 8:37:01

旧设备重生:非苹果设备老旧硬件性能优化指南

旧设备重生&#xff1a;非苹果设备老旧硬件性能优化指南 【免费下载链接】OpenCore-Legacy-Patcher 体验与之前一样的macOS 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 老旧电子设备升级是延长设备生命周期、提升性能的经济有效方式。本…

作者头像 李华
网站建设 2026/6/24 7:53:33

Z-Image Turbo免费部署:高性能AI绘画的低成本实现方式

Z-Image Turbo免费部署&#xff1a;高性能AI绘画的低成本实现方式 1. 为什么本地跑AI画图不再“烧显卡”&#xff1f; 你是不是也经历过&#xff1a; 花半小时配环境&#xff0c;结果一运行就报错&#xff1b; 好不容易加载成功&#xff0c;生成一张图要等三分钟&#xff1b;…

作者头像 李华
网站建设 2026/6/15 21:52:51

Jimeng AI Studio效果展示:Z-Image-Turbo生成像素艺术风格作品

Jimeng AI Studio效果展示&#xff1a;Z-Image-Turbo生成像素艺术风格作品 1. 为什么像素艺术突然又火了&#xff1f; 你有没有在小红书刷到过那种复古感十足的8-bit游戏截图&#xff1f;或者在Discord群里看到朋友发的马里奥风格头像&#xff0c;边角带着清晰的方块锯齿&…

作者头像 李华