logo

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环境部署

  1. # CentOS系统安装OpenJDK 11示例
  2. sudo yum install -y java-11-openjdk-devel
  3. java -version # 验证安装
  4. echo "export JAVA_HOME=/usr/lib/jvm/java-11-openjdk" >> ~/.bashrc
  5. source ~/.bashrc

2.2 MySQL数据库配置

  1. -- 创建RuoYi专用数据库
  2. CREATE DATABASE ruoyi CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  3. CREATE USER 'ruoyi'@'%' IDENTIFIED BY 'StrongPassword123!';
  4. GRANT ALL PRIVILEGES ON ruoyi.* TO 'ruoyi'@'%';
  5. FLUSH PRIVILEGES;

2.3 Redis缓存部署

  1. # Ubuntu系统安装Redis示例
  2. sudo apt update
  3. sudo apt install -y redis-server
  4. sudo sed -i 's/^bind 127.0.0.1/bind 0.0.0.0/' /etc/redis/redis.conf
  5. sudo systemctl restart redis

三、RuoYi系统部署核心步骤

3.1 项目上传与解压

  1. # 使用scp上传ruoyi.zip到服务器
  2. scp /local/path/ruoyi.zip root@your_server_ip:/opt/
  3. # 服务器端解压
  4. cd /opt
  5. unzip ruoyi.zip
  6. chmod -R 755 ruoyi

3.2 配置文件修改要点

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

  1. spring:
  2. datasource:
  3. url: jdbc:mysql://localhost:3306/ruoyi?useSSL=false&serverTimezone=UTC
  4. username: ruoyi
  5. password: StrongPassword123!
  6. redis:
  7. host: localhost
  8. password:

3.3 启动脚本优化

创建start.sh脚本:

  1. #!/bin/bash
  2. JAVA_OPTS="-Xms512m -Xmx1024m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m"
  3. nohup java $JAVA_OPTS -jar ruoyi-admin.jar > ruoyi.log 2>&1 &
  4. echo "RuoYi启动成功,PID:$!"

四、生产环境安全加固方案

4.1 防火墙配置

  1. # CentOS 8防火墙规则示例
  2. sudo firewall-cmd --permanent --add-port={80/tcp,443/tcp,22/tcp,3306/tcp}
  3. sudo firewall-cmd --reload

4.2 Nginx反向代理配置

  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. # HTTPS配置示例
  10. listen 443 ssl;
  11. ssl_certificate /path/to/cert.pem;
  12. ssl_certificate_key /path/to/key.pem;
  13. }

4.3 定期备份策略

  1. # MySQL数据库备份脚本
  2. #!/bin/bash
  3. BACKUP_DIR=/opt/backup
  4. mkdir -p $BACKUP_DIR
  5. mysqldump -urooyi -p'StrongPassword123!' ruoyi > $BACKUP_DIR/ruoyi_$(date +%Y%m%d).sql
  6. find $BACKUP_DIR -name "ruoyi_*.sql" -mtime +30 -exec rm {} \;

五、性能优化与监控

5.1 JVM调优参数

  1. # 生产环境推荐JVM参数
  2. JAVA_OPTS="-server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=256m \
  3. -XX:MaxMetaspaceSize=512m -XX:+UseG1GC \
  4. -XX:G1HeapRegionSize=4m -XX:+PrintGCDetails \
  5. -Xloggc:/opt/logs/gc.log"

5.2 监控工具部署

  • Prometheus + Grafana:监控JVM指标、系统负载
  • SkyWalking:分布式追踪系统调用链
  • ELK Stack:集中式日志管理方案

六、常见问题解决方案

6.1 数据库连接失败排查

  1. 检查MySQL服务状态:systemctl status mysqld
  2. 验证防火墙规则:firewall-cmd --list-ports
  3. 检查连接池配置:spring.datasource.max-active建议设置为20-50

6.2 内存溢出问题处理

  1. 增加JVM堆内存:-Xms2g -Xmx2g
  2. 优化MyBatis查询:避免N+1查询问题
  3. 启用Redis缓存:配置spring.cache.type=redis

七、持续集成部署方案

7.1 Jenkins自动化部署

  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'
  12. }
  13. }
  14. stage('Deploy') {
  15. steps {
  16. sshagent(['server-key']) {
  17. sh 'scp target/ruoyi-admin.jar user@server:/opt/ruoyi/'
  18. sh 'ssh user@server "bash /opt/ruoyi/restart.sh"'
  19. }
  20. }
  21. }
  22. }
  23. }

7.2 Docker容器化部署

  1. FROM openjdk:11-jre-slim
  2. VOLUME /tmp
  3. ARG JAR_FILE=target/*.jar
  4. COPY ${JAR_FILE} app.jar
  5. ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

八、升级与维护策略

  1. 版本管理:建立分支管理策略(dev/test/prod)
  2. 回滚方案:保留至少2个历史版本包
  3. 变更记录:使用/opt/ruoyi/CHANGELOG.md记录关键变更
  4. 定期更新:每季度检查依赖库安全更新

通过以上系统化的部署方案,开发者可以高效完成RuoYi系统在云服务器上的部署,同时建立完善的运维体系。实际部署时建议先在测试环境验证所有配置,再逐步迁移到生产环境。对于高并发场景,可考虑引入Redis集群和MySQL主从架构提升系统可用性。

相关文章推荐

发表评论

活动