logo

RuoYi云服务器部署全攻略:从环境搭建到系统优化

作者:JC2025.09.26 21:39浏览量:0

简介:本文详细解析RuoYi系统在云服务器上的部署流程,涵盖环境准备、安全配置、性能调优等关键环节,提供可落地的技术指导。

一、RuoYi系统部署前的核心准备

1.1 云服务器选型策略

针对RuoYi系统特性,建议选择计算型实例(如阿里云ecs.c6或腾讯云S5),其2核4G配置可满足中小型业务需求。需重点验证:

  • 操作系统兼容性:优先选用CentOS 7/8或Ubuntu 20.04 LTS
  • 磁盘空间规划:系统盘建议50GB以上,数据盘按业务增长预留
  • 网络带宽配置:初期1-2Mbps足够,后期根据并发量动态调整

1.2 基础环境依赖矩阵

组件 版本要求 部署方式 验证命令
JDK 1.8+ 手动安装/yum安装 java -version
MySQL 5.7/8.0 独立实例/Docker mysql --version
Redis 5.0+ 集群模式 redis-cli ping
Nginx 1.18+ 编译安装 nginx -v

典型环境配置示例(Ubuntu 20.04):

  1. # JDK安装
  2. sudo apt update
  3. sudo apt install openjdk-8-jdk -y
  4. echo "export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64" >> ~/.bashrc
  5. # MySQL安装
  6. sudo apt install mysql-server-8.0 -y
  7. sudo systemctl start mysql

二、RuoYi系统部署实施流程

2.1 数据库初始化阶段

  1. 执行SQL脚本:
    ```sql
    — 创建数据库(UTF8MB4编码)
    CREATE DATABASE ruoyi CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

— 导入基础表结构
source /path/to/ruoyi.sql;

  1. 2. 配置连接池参数(application.yml):
  2. ```yaml
  3. spring:
  4. datasource:
  5. url: jdbc:mysql://localhost:3306/ruoyi?useSSL=false&serverTimezone=UTC
  6. username: root
  7. password: YourPassword
  8. hikari:
  9. maximum-pool-size: 20
  10. connection-timeout: 30000

2.2 应用部署技术方案

方案A:Jar包部署(推荐测试环境)

  1. # 编译打包
  2. mvn clean package -Dmaven.test.skip=true
  3. # 后台运行
  4. nohup java -jar ruoyi-admin.jar --spring.profiles.active=prod > ruoyi.log 2>&1 &

方案B:Docker容器化部署(生产环境优选)

  1. # Dockerfile示例
  2. FROM openjdk:8-jre
  3. VOLUME /tmp
  4. ARG JAR_FILE=target/*.jar
  5. COPY ${JAR_FILE} app.jar
  6. ENTRYPOINT ["java","-jar","/app.jar"]

构建与运行命令:

  1. docker build -t ruoyi-admin .
  2. docker run -d -p 8080:8080 --name ruoyi ruoyi-admin

2.3 Nginx反向代理配置

关键配置片段(nginx.conf):

  1. server {
  2. listen 80;
  3. server_name yourdomain.com;
  4. location / {
  5. proxy_pass http://127.0.0.1:8080;
  6. proxy_set_header Host $host;
  7. proxy_set_header X-Real-IP $remote_addr;
  8. }
  9. # 静态资源缓存
  10. location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
  11. expires 30d;
  12. access_log off;
  13. }
  14. }

三、生产环境优化实践

3.1 性能调优策略

  1. JVM参数优化:

    1. # 初始堆内存设为物理内存的1/4
    2. JAVA_OPTS="-Xms1024m -Xmx1024m -XX:MetaspaceSize=256m"
  2. MySQL连接池配置:

    1. # application.yml增强配置
    2. spring:
    3. datasource:
    4. hikari:
    5. connection-test-query: SELECT 1
    6. idle-timeout: 600000
    7. max-lifetime: 1800000

3.2 安全加固方案

  1. 防火墙规则配置:

    1. # 仅开放必要端口
    2. sudo ufw allow 22/tcp # SSH
    3. sudo ufw allow 80/tcp # HTTP
    4. sudo ufw allow 443/tcp # HTTPS
    5. sudo ufw enable
  2. 数据库安全设置:
    ```sql
    — 创建专用用户
    CREATE USER ‘ruoyi’@’%’ IDENTIFIED BY ‘SecurePassword123!’;
    GRANT ALL PRIVILEGES ON ruoyi.* TO ‘ruoyi’@’%’;
    FLUSH PRIVILEGES;

— 禁用root远程登录
DELETE FROM mysql.user WHERE User=’root’ AND Host NOT IN (‘localhost’, ‘127.0.0.1’, ‘::1’);

  1. ## 3.3 监控告警体系
  2. 1. Prometheus监控配置:
  3. ```yaml
  4. # application.yml集成
  5. management:
  6. endpoints:
  7. web:
  8. exposure:
  9. include: prometheus
  10. metrics:
  11. export:
  12. prometheus:
  13. enabled: true
  1. 关键监控指标:
  • JVM内存使用率
  • 数据库连接数
  • 请求响应时间(P99)
  • 线程池活跃线程数

四、故障排查指南

4.1 常见问题处理

  1. 端口冲突
    ```bash

    查找占用端口的进程

    sudo netstat -tulnp | grep 8080

强制终止进程

sudo kill -9 PID

  1. 2. **数据库连接失败**:
  2. - 检查`max_connections`参数(建议设置500+)
  3. - 验证网络连通性:`telnet mysql_host 3306`
  4. - 查看MySQL错误日志:`tail -f /var/log/mysql/error.log`
  5. ## 4.2 日志分析技巧
  6. 1. 关键日志路径:
  7. - 应用日志:`/var/log/ruoyi/app.log`
  8. - Nginx日志:`/var/log/nginx/access.log`
  9. - 系统日志:`/var/log/syslog`
  10. 2. 日志分析命令:
  11. ```bash
  12. # 实时查看错误日志
  13. tail -f /path/to/ruoyi.log | grep -i "error\|exception"
  14. # 统计高频错误
  15. cat ruoyi.log | awk '{print $5}' | sort | uniq -c | sort -nr | head -10

五、持续集成与部署

5.1 Jenkins自动化流水线

典型Jenkinsfile示例:

  1. pipeline {
  2. agent any
  3. stages {
  4. stage('Checkout') {
  5. steps {
  6. git branch: 'main', url: 'https://github.com/your/ruoyi.git'
  7. }
  8. }
  9. stage('Build') {
  10. steps {
  11. sh 'mvn clean package -Dmaven.test.skip=true'
  12. }
  13. }
  14. stage('Deploy') {
  15. steps {
  16. sshagent(['deploy-key']) {
  17. sh 'scp target/ruoyi-admin.jar user@server:/opt/ruoyi/'
  18. sh 'ssh user@server "systemctl restart ruoyi"'
  19. }
  20. }
  21. }
  22. }
  23. }

5.2 蓝绿部署实施

  1. 部署架构:

    1. ┌─────────────┐ ┌─────────────┐
    2. Blue环境 Green环境
    3. (运行中) │◀───▶│ (待切换)
    4. └─────────────┘ └─────────────┘
    5. 负载均衡
  2. 切换脚本示例:

    1. #!/bin/bash
    2. # 检查Green环境健康状态
    3. if curl -sI http://green-server:8080/actuator/health | grep -q "UP"; then
    4. # 修改Nginx配置指向Green环境
    5. sed -i 's/blue-server/green-server/g' /etc/nginx/conf.d/ruoyi.conf
    6. systemctl reload nginx
    7. else
    8. echo "Green环境健康检查失败"
    9. exit 1
    10. fi

六、进阶优化建议

  1. 读写分离:配置MySQL主从复制,应用层通过ShardingSphere实现自动路由
  2. 缓存策略
    • 热点数据缓存:设置TTL=5分钟
    • 缓存穿透防护:空值缓存+布隆过滤器
  3. 异地多活:基于RuoYi的模块化设计,实现城市级故障自动切换

通过系统化的部署方案和持续优化策略,RuoYi系统可在云服务器上实现高可用、高性能的企业级部署。建议每季度进行一次完整的性能基准测试,根据业务增长曲线动态调整资源配置。

相关文章推荐

发表评论

活动