1. 环境准备:从零搭建CentOS 7服务器
第一次接触Linux服务器部署时,我对着云服务商的控制台研究了整整半天。选择CentOS 7而不是其他发行版的原因很简单——它就像技术界的"普通话",网上90%的教程都基于这个系统。记得当时在华为云的EulerOS和CentOS之间犹豫不决,最后发现CentOS 7的软件兼容性更好,遇到问题也更容易找到解决方案。
购买服务器时有个小技巧:先选按量付费模式测试配置,确认没问题再转包年包月。我通常选择2核4G的配置起步,这对若依系统来说完全够用。重置密码后千万别急着关闭页面,建议用Keepass这类密码管理工具保存IP、端口和密码。第一次登录时可能会被要求修改初始密码,这个步骤经常被新手忽略导致后续登录失败。
2. 基础环境安装:JDK、MySQL与Redis
2.1 Java环境配置
在CentOS上安装JDK就像在Windows上装QQ一样简单——只要用对命令。我习惯用yum安装OpenJDK 8,这是最稳定的选择:
yum install -y java-1.8.0-openjdk*装完后别急着庆祝,记得检查版本号:
java -version最关键的环节是配置环境变量。很多新手会卡在这里,其实只要记住三个要点:
- 编辑/etc/profile文件时要用sudo权限
- JAVA_HOME路径通常是/usr/lib/jvm/java-1.8.0
- 修改后必须执行source /etc/profile使配置生效
2.2 MySQL 5.7安装指南
MySQL安装就像搭积木,必须按顺序安装各个组件。我推荐下载官方rpm包手动安装,虽然比yum麻烦但更可控。遇到过最坑的问题是依赖缺失,这时候只需要:
yum install -y libaio安装完成后,一定要去/var/log/mysqld.log找初始密码,这个随机密码只能用一次。修改密码时要注意复杂度要求,我常用的模板是"项目名+特殊符号+数字",比如"RuoYi@2023"。
2.3 Redis部署技巧
Redis安装就像组装乐高,先装gcc编译器这个"工具箱":
yum install -y gcc编译安装时有个经验之谈:如果make命令卡住,可能是内存不足,可以加个swap分区。生产环境建议配置密码认证和持久化,但测试环境直接用默认配置也行。启动服务时一定要用守护进程模式:
./redis-server redis.conf3. 前端部署:Nginx配置实战
Nginx就像项目的门面,配置不当会导致页面白屏或接口404。我建议用yum直接安装:
yum install -y nginx关键配置在/etc/nginx/nginx.conf,需要特别注意两个location块:
- 前端静态文件路径要指向dist目录
- /prod-api/要代理到后端服务端口
常见坑点包括:
- 忘记开放80端口防火墙
- 路径写错导致403错误
- 缓存配置不当导致更新不生效
测试配置是否正确有个小技巧:
nginx -t4. 若依系统部署全流程
4.1 数据库初始化
导入SQL文件时最容易遇到字符集问题,创建数据库时一定要指定utf8:
CREATE DATABASE vue DEFAULT CHARACTER SET=utf8导入数据后别忘了检查表是否完整:
SHOW TABLES;4.2 后端服务部署
打包好的jar文件可以通过scp命令上传到服务器:
scp ruoyi-admin.jar root@your_server_ip:/app/ruoyi/启动服务时建议用nohup防止断开连接后服务停止:
nohup java -jar ruoyi-admin.jar &4.3 前端资源部署
Vue项目build生成的dist目录要完整上传到服务器。我习惯用rsync同步,比ftp更可靠:
rsync -avz dist/ root@your_server_ip:/app/ruoyi-ui5. 常见问题排查手册
部署过程中最常遇到的三个问题:
- 端口冲突:用netstat -tunlp查看占用情况
- 权限不足:chmod -R 755 /app解决目录权限
- 服务未启动:systemctl status查看服务状态
日志查看是排查问题的金钥匙:
- 后端日志:tail -f nohup.out
- Nginx日志:/var/log/nginx/error.log
- MySQL日志:/var/log/mysqld.log
记得第一次部署时,因为Redis没启动导致登录一直失败,花了两个小时才找到原因。现在我会准备个检查清单,挨个确认服务状态。还有个实用技巧是用telnet测试端口连通性:
telnet localhost 63796. 性能优化与安全加固
正式环境部署还需要考虑:
- 配置HTTPS证书提升安全性
- 设置Nginx的gzip压缩减少传输量
- 配置MySQL的innodb_buffer_pool_size
- 限制Redis的外网访问
对于高并发场景,建议:
- 前端启用CDN加速
- 后端增加JVM堆内存
- Redis配置持久化策略
- MySQL优化查询索引
我在实际项目中发现,若依默认的Tomcat配置对并发支持有限,可以通过修改application.yml中的server配置来优化:
server: tomcat: max-threads: 200 min-spare-threads: 30最后提醒一点:一定要定期备份数据库和代码目录。曾经因为服务器故障丢失过数据,现在我会用crontab设置自动备份:
0 3 * * * mysqldump -uroot -p vue > /backup/vue_$(date +%F).sql