logo

RuoYi云服务器高效部署指南:从零到生产环境全流程

作者:沙与沫2025.09.18 12:10浏览量:0

简介:本文详细解析RuoYi系统在云服务器上的部署流程,涵盖环境准备、配置优化、安全加固及运维监控,为开发者提供标准化操作指南。

一、RuoYi系统部署前的环境准备

1.1 云服务器规格选型

RuoYi作为基于Spring Boot的快速开发框架,其部署环境需满足Java运行要求。建议选择2核4G以上配置的云服务器,操作系统推荐CentOS 7/8或Ubuntu 20.04 LTS。以阿里云ECS为例,计算优化型c6实例可提供稳定的CPU性能,同时需确保系统盘容量不低于40GB以容纳应用及数据。

1.2 基础环境安装

通过SSH连接服务器后,执行以下步骤:

  1. # 安装OpenJDK 11
  2. sudo yum install -y java-11-openjdk-devel # CentOS
  3. sudo apt install -y openjdk-11-jdk # Ubuntu
  4. # 配置Maven环境
  5. wget https://archive.apache.org/dist/maven/maven-3/3.8.6/binaries/apache-maven-3.8.6-bin.tar.gz
  6. tar -zxvf apache-maven-3.8.6-bin.tar.gz -C /opt
  7. echo 'export MAVEN_HOME=/opt/apache-maven-3.8.6' >> ~/.bashrc
  8. echo 'export PATH=$PATH:$MAVEN_HOME/bin' >> ~/.bashrc
  9. source ~/.bashrc

1.3 数据库部署方案

RuoYi默认使用MySQL数据库,推荐部署MySQL 8.0社区版。可通过Docker快速部署:

  1. docker run --name mysql8 -e MYSQL_ROOT_PASSWORD=yourpassword \
  2. -p 3306:3306 -v /data/mysql:/var/lib/mysql \
  3. -d mysql:8.0 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

需特别注意字符集配置,避免中文乱码问题。

二、RuoYi系统部署实施

2.1 代码获取与编译

从GitHub官方仓库获取最新版本:

  1. git clone https://github.com/yangzongzhuan/RuoYi.git
  2. cd RuoYi
  3. mvn clean package -Dmaven.test.skip=true

编译完成后,在ruoyi-admin/target目录下生成可执行的JAR包。

2.2 应用配置优化

修改application.yml中的关键参数:

  1. spring:
  2. datasource:
  3. url: jdbc:mysql://localhost:3306/ry?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
  4. username: root
  5. password: yourpassword
  6. redis:
  7. host: 127.0.0.1
  8. port: 6379

建议配置Redis作为缓存层,提升系统响应速度。

2.3 进程管理方案

推荐使用Systemd管理应用进程,创建服务文件/etc/systemd/system/ruoyi.service

  1. [Unit]
  2. Description=RuoYi Application
  3. After=syslog.target network.target
  4. [Service]
  5. Type=simple
  6. User=root
  7. ExecStart=/usr/bin/java -jar /path/to/ruoyi-admin.jar
  8. Restart=on-failure
  9. RestartSec=30s
  10. [Install]
  11. WantedBy=multi-user.target

执行systemctl enable ruoyi实现开机自启。

三、生产环境优化策略

3.1 连接池配置

application-druid.yml中配置HikariCP连接池:

  1. spring:
  2. datasource:
  3. type: com.zaxxer.hikari.HikariDataSource
  4. hikari:
  5. minimum-idle: 5
  6. maximum-pool-size: 20
  7. idle-timeout: 30000
  8. pool-name: RuoYiHikariCP
  9. max-lifetime: 1800000
  10. connection-timeout: 30000

3.2 缓存策略设计

对于高频访问数据,建议采用两级缓存:

  1. @Cacheable(value = "userCache", key = "#id")
  2. public UserInfo getUserById(Long id) {
  3. // 数据库查询逻辑
  4. }

同时配置Redis集群提升可用性。

3.3 日志管理方案

采用Logback+ELK架构实现日志集中管理:

  1. <!-- logback.xml配置示例 -->
  2. <appender name="ELK" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
  3. <destination>elk-server:5000</destination>
  4. <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder"/>
  5. </appender>

四、安全加固措施

4.1 防火墙配置

通过firewalld设置安全规则:

  1. firewall-cmd --permanent --add-port=80/tcp
  2. firewall-cmd --permanent --add-port=443/tcp
  3. firewall-cmd --permanent --add-port=2222/tcp # 自定义SSH端口
  4. firewall-cmd --reload

4.2 密钥管理方案

使用keytool生成JKS密钥库:

  1. keytool -genkeypair -alias ruoyi -keyalg RSA -keysize 2048 \
  2. -validity 3650 -keystore /path/to/ruoyi.jks -storepass changeit

4.3 定期安全审计

配置Cron任务执行安全扫描:

  1. 0 3 * * * /usr/bin/lynis audit system --quick --reporter-filename=/var/log/lynis-report.dat

五、运维监控体系

5.1 Prometheus监控

配置prometheus.yml抓取JMX指标:

  1. scrape_configs:
  2. - job_name: 'ruoyi'
  3. static_configs:
  4. - targets: ['localhost:12345']

5.2 告警规则设计

示例告警规则:

  1. groups:
  2. - name: ruoyi.rules
  3. rules:
  4. - alert: HighResponseTime
  5. expr: http_server_requests_seconds_count{status="500"} > 10
  6. for: 5m
  7. labels:
  8. severity: critical
  9. annotations:
  10. summary: "High 5xx error rate on RuoYi"

5.3 自动化备份方案

配置MySQL定时备份:

  1. 0 2 * * * /usr/bin/mysqldump -uroot -p yourpassword ry | gzip > /backup/ry_$(date +\%Y\%m\%d).sql.gz

六、常见问题解决方案

6.1 内存溢出问题

调整JVM参数:

  1. JAVA_OPTS="-Xms512m -Xmx2048m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m"

6.2 数据库连接泄漏

在代码中添加连接关闭逻辑:

  1. try (Connection conn = dataSource.getConnection();
  2. PreparedStatement ps = conn.prepareStatement(sql)) {
  3. // 执行查询
  4. } catch (SQLException e) {
  5. // 异常处理
  6. }

6.3 跨域问题处理

在Spring Boot中配置CORS:

  1. @Configuration
  2. public class CorsConfig implements WebMvcConfigurer {
  3. @Override
  4. public void addCorsMappings(CorsRegistry registry) {
  5. registry.addMapping("/**")
  6. .allowedOrigins("*")
  7. .allowedMethods("GET", "POST", "PUT", "DELETE")
  8. .allowedHeaders("*")
  9. .allowCredentials(true)
  10. .maxAge(3600);
  11. }
  12. }

通过以上标准化部署流程和优化方案,可实现RuoYi系统在云服务器上的高效稳定运行。实际部署时需根据具体业务场景调整参数配置,并建立完善的监控告警机制确保系统可用性。

相关文章推荐

发表评论