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连接服务器后,执行以下步骤:
# 安装OpenJDK 11
sudo yum install -y java-11-openjdk-devel # CentOS
sudo apt install -y openjdk-11-jdk # Ubuntu
# 配置Maven环境
wget https://archive.apache.org/dist/maven/maven-3/3.8.6/binaries/apache-maven-3.8.6-bin.tar.gz
tar -zxvf apache-maven-3.8.6-bin.tar.gz -C /opt
echo 'export MAVEN_HOME=/opt/apache-maven-3.8.6' >> ~/.bashrc
echo 'export PATH=$PATH:$MAVEN_HOME/bin' >> ~/.bashrc
source ~/.bashrc
1.3 数据库部署方案
RuoYi默认使用MySQL数据库,推荐部署MySQL 8.0社区版。可通过Docker快速部署:
docker run --name mysql8 -e MYSQL_ROOT_PASSWORD=yourpassword \
-p 3306:3306 -v /data/mysql:/var/lib/mysql \
-d mysql:8.0 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
需特别注意字符集配置,避免中文乱码问题。
二、RuoYi系统部署实施
2.1 代码获取与编译
从GitHub官方仓库获取最新版本:
git clone https://github.com/yangzongzhuan/RuoYi.git
cd RuoYi
mvn clean package -Dmaven.test.skip=true
编译完成后,在ruoyi-admin/target
目录下生成可执行的JAR包。
2.2 应用配置优化
修改application.yml
中的关键参数:
spring:
datasource:
url: jdbc:mysql://localhost:3306/ry?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
username: root
password: yourpassword
redis:
host: 127.0.0.1
port: 6379
建议配置Redis作为缓存层,提升系统响应速度。
2.3 进程管理方案
推荐使用Systemd管理应用进程,创建服务文件/etc/systemd/system/ruoyi.service
:
[Unit]
Description=RuoYi Application
After=syslog.target network.target
[Service]
Type=simple
User=root
ExecStart=/usr/bin/java -jar /path/to/ruoyi-admin.jar
Restart=on-failure
RestartSec=30s
[Install]
WantedBy=multi-user.target
执行systemctl enable ruoyi
实现开机自启。
三、生产环境优化策略
3.1 连接池配置
在application-druid.yml
中配置HikariCP连接池:
spring:
datasource:
type: com.zaxxer.hikari.HikariDataSource
hikari:
minimum-idle: 5
maximum-pool-size: 20
idle-timeout: 30000
pool-name: RuoYiHikariCP
max-lifetime: 1800000
connection-timeout: 30000
3.2 缓存策略设计
对于高频访问数据,建议采用两级缓存:
@Cacheable(value = "userCache", key = "#id")
public UserInfo getUserById(Long id) {
// 数据库查询逻辑
}
同时配置Redis集群提升可用性。
3.3 日志管理方案
采用Logback+ELK架构实现日志集中管理:
<!-- logback.xml配置示例 -->
<appender name="ELK" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<destination>elk-server:5000</destination>
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder"/>
</appender>
四、安全加固措施
4.1 防火墙配置
通过firewalld
设置安全规则:
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --permanent --add-port=2222/tcp # 自定义SSH端口
firewall-cmd --reload
4.2 密钥管理方案
使用keytool
生成JKS密钥库:
keytool -genkeypair -alias ruoyi -keyalg RSA -keysize 2048 \
-validity 3650 -keystore /path/to/ruoyi.jks -storepass changeit
4.3 定期安全审计
配置Cron任务执行安全扫描:
0 3 * * * /usr/bin/lynis audit system --quick --reporter-filename=/var/log/lynis-report.dat
五、运维监控体系
5.1 Prometheus监控
配置prometheus.yml
抓取JMX指标:
scrape_configs:
- job_name: 'ruoyi'
static_configs:
- targets: ['localhost:12345']
5.2 告警规则设计
示例告警规则:
groups:
- name: ruoyi.rules
rules:
- alert: HighResponseTime
expr: http_server_requests_seconds_count{status="500"} > 10
for: 5m
labels:
severity: critical
annotations:
summary: "High 5xx error rate on RuoYi"
5.3 自动化备份方案
配置MySQL定时备份:
0 2 * * * /usr/bin/mysqldump -uroot -p yourpassword ry | gzip > /backup/ry_$(date +\%Y\%m\%d).sql.gz
六、常见问题解决方案
6.1 内存溢出问题
调整JVM参数:
JAVA_OPTS="-Xms512m -Xmx2048m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m"
6.2 数据库连接泄漏
在代码中添加连接关闭逻辑:
try (Connection conn = dataSource.getConnection();
PreparedStatement ps = conn.prepareStatement(sql)) {
// 执行查询
} catch (SQLException e) {
// 异常处理
}
6.3 跨域问题处理
在Spring Boot中配置CORS:
@Configuration
public class CorsConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("*")
.allowedMethods("GET", "POST", "PUT", "DELETE")
.allowedHeaders("*")
.allowCredentials(true)
.maxAge(3600);
}
}
通过以上标准化部署流程和优化方案,可实现RuoYi系统在云服务器上的高效稳定运行。实际部署时需根据具体业务场景调整参数配置,并建立完善的监控告警机制确保系统可用性。
发表评论
登录后可评论,请前往 登录 或 注册