news 2026/10/25 23:10:18

高效运维:利用宝塔面板优化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/10/25 23:08:53

Granite-4.0-H-350m模型微调教程:定制专属领域模型

Granite-4.0-H-350m模型微调教程&#xff1a;定制专属领域模型 1. 为什么选择Granite-4.0-H-350m进行微调 当你第一次听说要对一个350M参数的模型做微调时&#xff0c;可能会有些疑惑&#xff1a;这么小的模型真能胜任专业任务吗&#xff1f;我刚开始也有同样的疑问&#xff…

作者头像 李华
网站建设 2026/10/25 23:09:19

智能防休眠:让Windows系统时刻在线的高效解决方案

智能防休眠&#xff1a;让Windows系统时刻在线的高效解决方案 【免费下载链接】NoSleep Lightweight Windows utility to prevent screen locking 项目地址: https://gitcode.com/gh_mirrors/nos/NoSleep 在数字时代&#xff0c;我们经常遇到这样的困扰&#xff1a;视频…

作者头像 李华
网站建设 2026/10/23 4:28:24

告别卡顿!开源串流工具超低延迟优化指南

告别卡顿&#xff01;开源串流工具超低延迟优化指南 【免费下载链接】Sunshine Sunshine: Sunshine是一个自托管的游戏流媒体服务器&#xff0c;支持通过Moonlight在各种设备上进行低延迟的游戏串流。 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 游戏串…

作者头像 李华
网站建设 2026/10/25 12:19:32

DeepSeek-R1-Distill-Qwen-1.5B部署问题全解:常见错误与修复方案

DeepSeek-R1-Distill-Qwen-1.5B部署问题全解&#xff1a;常见错误与修复方案 DeepSeek-R1-Distill-Qwen-1.5B 是 DeepSeek 用 80 万条 R1 推理链样本对 Qwen-1.5B 做蒸馏得到的“小钢炮”模型——1.5 B 参数就能跑出 7 B 级推理成绩&#xff0c;手机、树莓派都能装。 它不是参…

作者头像 李华