RuoYi云服务器部署全攻略:从环境搭建到生产级优化
2025.09.26 21:39浏览量:2简介:本文详细解析RuoYi系统在云服务器上的部署流程,涵盖环境准备、依赖配置、安全加固及性能调优等关键环节,提供可落地的技术方案与避坑指南。
RuoYi云服务器部署全攻略:从环境准备到生产级优化
一、RuoYi系统部署前的云服务器选型
1.1 云服务器配置建议
根据RuoYi(若依)框架的技术特性,建议选择至少2核4G内存的云服务器,操作系统推荐CentOS 8或Ubuntu 20.04 LTS。对于高并发场景,建议采用4核8G配置,并启用SSD云盘以提升I/O性能。以阿里云ECS为例,计算优化型c6实例能较好平衡性能与成本。
1.2 网络环境配置要点
- 安全组规则:需开放80(HTTP)、443(HTTPS)、22(SSH)、3306(MySQL)等关键端口
- 带宽选择:初期测试可选用1-5Mbps共享带宽,生产环境建议3-10Mbps独享带宽
- 弹性IP配置:确保服务器绑定弹性公网IP,便于域名解析和后续扩容
二、RuoYi系统环境搭建全流程
2.1 JDK环境部署
# CentOS系统安装OpenJDK 11示例sudo yum install -y java-11-openjdk-develjava -version # 验证安装echo "export JAVA_HOME=/usr/lib/jvm/java-11-openjdk" >> ~/.bashrcsource ~/.bashrc
2.2 MySQL数据库配置
-- 创建RuoYi专用数据库CREATE DATABASE ruoyi CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;CREATE USER 'ruoyi'@'%' IDENTIFIED BY 'StrongPassword123!';GRANT ALL PRIVILEGES ON ruoyi.* TO 'ruoyi'@'%';FLUSH PRIVILEGES;
2.3 Redis缓存部署
# Ubuntu系统安装Redis示例sudo apt updatesudo apt install -y redis-serversudo sed -i 's/^bind 127.0.0.1/bind 0.0.0.0/' /etc/redis/redis.confsudo systemctl restart redis
三、RuoYi系统部署核心步骤
3.1 项目上传与解压
# 使用scp上传ruoyi.zip到服务器scp /local/path/ruoyi.zip root@your_server_ip:/opt/# 服务器端解压cd /optunzip ruoyi.zipchmod -R 755 ruoyi
3.2 配置文件修改要点
修改application.yml中的关键参数:
spring:datasource:url: jdbc:mysql://localhost:3306/ruoyi?useSSL=false&serverTimezone=UTCusername: ruoyipassword: StrongPassword123!redis:host: localhostpassword:
3.3 启动脚本优化
创建start.sh脚本:
#!/bin/bashJAVA_OPTS="-Xms512m -Xmx1024m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m"nohup java $JAVA_OPTS -jar ruoyi-admin.jar > ruoyi.log 2>&1 &echo "RuoYi启动成功,PID:$!"
四、生产环境安全加固方案
4.1 防火墙配置
# CentOS 8防火墙规则示例sudo firewall-cmd --permanent --add-port={80/tcp,443/tcp,22/tcp,3306/tcp}sudo firewall-cmd --reload
4.2 Nginx反向代理配置
server {listen 80;server_name yourdomain.com;location / {proxy_pass http://127.0.0.1:8080;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;}# HTTPS配置示例listen 443 ssl;ssl_certificate /path/to/cert.pem;ssl_certificate_key /path/to/key.pem;}
4.3 定期备份策略
# MySQL数据库备份脚本#!/bin/bashBACKUP_DIR=/opt/backupmkdir -p $BACKUP_DIRmysqldump -urooyi -p'StrongPassword123!' ruoyi > $BACKUP_DIR/ruoyi_$(date +%Y%m%d).sqlfind $BACKUP_DIR -name "ruoyi_*.sql" -mtime +30 -exec rm {} \;
五、性能优化与监控
5.1 JVM调优参数
# 生产环境推荐JVM参数JAVA_OPTS="-server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=256m \-XX:MaxMetaspaceSize=512m -XX:+UseG1GC \-XX:G1HeapRegionSize=4m -XX:+PrintGCDetails \-Xloggc:/opt/logs/gc.log"
5.2 监控工具部署
- Prometheus + Grafana:监控JVM指标、系统负载
- SkyWalking:分布式追踪系统调用链
- ELK Stack:集中式日志管理方案
六、常见问题解决方案
6.1 数据库连接失败排查
- 检查MySQL服务状态:
systemctl status mysqld - 验证防火墙规则:
firewall-cmd --list-ports - 检查连接池配置:
spring.datasource.max-active建议设置为20-50
6.2 内存溢出问题处理
- 增加JVM堆内存:
-Xms2g -Xmx2g - 优化MyBatis查询:避免N+1查询问题
- 启用Redis缓存:配置
spring.cache.type=redis
七、持续集成部署方案
7.1 Jenkins自动化部署
pipeline {agent anystages {stage('Checkout') {steps {git branch: 'main', url: 'https://github.com/your/ruoyi.git'}}stage('Build') {steps {sh 'mvn clean package'}}stage('Deploy') {steps {sshagent(['server-key']) {sh 'scp target/ruoyi-admin.jar user@server:/opt/ruoyi/'sh 'ssh user@server "bash /opt/ruoyi/restart.sh"'}}}}}
7.2 Docker容器化部署
FROM openjdk:11-jre-slimVOLUME /tmpARG JAR_FILE=target/*.jarCOPY ${JAR_FILE} app.jarENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
八、升级与维护策略
- 版本管理:建立分支管理策略(dev/test/prod)
- 回滚方案:保留至少2个历史版本包
- 变更记录:使用
/opt/ruoyi/CHANGELOG.md记录关键变更 - 定期更新:每季度检查依赖库安全更新
通过以上系统化的部署方案,开发者可以高效完成RuoYi系统在云服务器上的部署,同时建立完善的运维体系。实际部署时建议先在测试环境验证所有配置,再逐步迁移到生产环境。对于高并发场景,可考虑引入Redis集群和MySQL主从架构提升系统可用性。

发表评论
登录后可评论,请前往 登录 或 注册