从零开始:Linux云服务器部署若依前后端分离项目实战指南
1. 环境准备搭建你的Linux云服务器第一次在Linux服务器上部署前后端分离项目时我像个无头苍蝇一样折腾了整整三天。现在回想起来如果当时有人能给我一份完整的准备工作清单至少能节省70%的时间。下面是我用血泪教训总结出来的必备清单服务器选择就像选房子要考虑地段区域和户型配置。国内主流云平台的基础款1核2G就足够运行若依项目但建议选择CentOS 7.x系统这是经过大量项目验证的稳定选择。记得在购买时勾选分配公网IP这是后续远程访问的关键。远程连接工具推荐FinalShell它的文件传输功能比XShell更直观。安装后新建SSH连接输入服务器公网IP、用户名通常是root和密码就能看到熟悉的命令行界面了。第一次连接时可能会提示密钥确认直接选接受并保存就行。基础环境需要这四个核心组件Nginx建议通过宝塔面板安装比手动编译安装省心很多JDK 1.8注意要安装开发版jdk而不是运行版jreMySQL 5.7官方推荐版本兼容性最好Redis内存数据库用于会话管理和缓存宝塔面板的安装其实特别简单只需要在服务器上执行这条命令yum install -y wget wget -O install.sh http://download.bt.cn/install/install_6.0.sh sh install.sh安装完成后会显示面板地址和初始账号密码记得保存到安全的地方。通过浏览器访问这个地址就能看到图形化管理界面了。2. 端口配置打通网络通道很多新手部署失败的第一道坎就是端口问题。我的阿里云服务器曾经因为没配置安全组导致项目部署后死活访问不了还以为是代码问题。实际上需要双重防护都要打通云平台安全组以阿里云为例进入ECS控制台 → 实例详情 → 安全组 → 配置规则添加两条规则授权策略允许协议类型自定义TCP端口范围9000前端/8080后端授权对象0.0.0.0/0服务器防火墙同样需要放行# 开放前端端口 firewall-cmd --zonepublic --add-port9000/tcp --permanent # 开放后端端口 firewall-cmd --zonepublic --add-port8080/tcp --permanent # 重载配置 firewall-cmd --reload如果遇到端口冲突比如8080被占用可以用这个命令查找占用进程netstat -tunlp | grep 8080找到PID后用kill -9 PID结束进程即可。实在解决不了就换个端口比如改成8081记得前后端配置要同步修改。3. 项目下载与初始化若依的官方文档其实很全面但新手容易在项目结构上犯迷糊。从Gitee克隆项目时建议使用SSH方式需要提前配置Git公钥git clone gitgitee.com:y_project/RuoYi.git下载完成后你会看到这样的目录结构RuoYi/ ├── ruoyi-ui # 前端项目Vue ├── ruoyi-admin # 后台模块 ├── sql/ # 数据库脚本 └── pom.xml # Maven配置文件数据库初始化是个关键步骤用宝塔面板创建MySQL数据库记住数据库名、用户名和密码导入项目sql目录下的两个文件按顺序quartz.sql定时任务相关表ry_2023xxxx.sql系统基础表如果Navicat连接报错Client does not support authentication执行这个SQL修改加密方式ALTER USER 用户名% IDENTIFIED WITH mysql_native_password BY 密码; FLUSH PRIVILEGES;4. 前端部署实战前端部署最常遇到的就是node_modules地狱。我的建议是先确保node版本在14-16之间若依对18支持不佳使用淘宝镜像加速安装npm install -g cnpm --registryhttps://registry.npmmirror.com cnpm install --unsafe-perm打包时如果内存不足需要修改node内存限制export NODE_OPTIONS--max_old_space_size4096 npm run build:prod成功后会生成dist文件夹这就是我们要部署的静态资源。Nginx配置有三个关键点将dist文件夹上传到服务器推荐放到/home/www/ruoyi-ui修改nginx.conf的server块location / { root /home/www/ruoyi-ui; try_files $uri $uri/ /index.html; index index.html; } location /prod-api/ { proxy_pass http://localhost:8080/; proxy_set_header Host $http_host; }测试配置并重载nginx -t # 检查语法 nginx -s reload # 平滑重启5. 后端部署精要后端部署的核心是处理好配置文件。在ruoyi-admin模块中这几个文件需要重点检查application.yml数据库连接配置application-druid.yml连接池配置application-redis.ymlRedis配置Maven打包建议跳过测试mvn clean package -Dmaven.test.skiptrue打包成功后target目录下会生成ruoyi-admin.jar。启动脚本可以这样写保存为start.sh#!/bin/bash nohup java -Xms512m -Xmx1024m -jar ruoyi-admin.jar ruoyi.log 21 给执行权限后启动chmod x start.sh ./start.sh查看日志确认启动状态tail -f ruoyi.log当看到Started RuoYiApplication in x seconds就说明成功了。6. 常见问题排查部署过程中最容易卡壳的几个地方前端访问空白页检查Nginx的root路径是否正确查看浏览器控制台是否有404错误确认dist文件夹权限chmod -R 755 /home/www后端接口报502确认后端服务是否运行ps -ef | grep java检查防火墙和安全组规则查看Nginx错误日志cat /var/log/nginx/error.logRedis连接失败确认redis服务已启动systemctl status redis检查application-redis.yml中的密码配置如果需要远程连接修改redis.confbind 0.0.0.0 protected-mode no requirepass 你的密码记得每次修改配置后相关服务都要重启生效。这套部署方案已经在多个生产环境验证过按照步骤操作基本不会有大问题。如果遇到特殊情况可以查看若依官方文档的FAQ部分或者去Gitee的issue区搜索类似问题。