宝塔面板+若依框架:给Linux小白的全栈部署避坑手册(含云服务器安全组配置)
宝塔面板+若依框架:零基础全栈部署实战指南
第一次在Linux服务器上部署前后端分离项目是什么体验?我至今记得那种面对黑底白字终端的茫然——明明本地开发跑得好好的项目,怎么一到服务器就各种报错?如果你也和我当初一样,对Linux命令望而生畏,又急需将若依框架项目部署上线,这篇指南就是为你量身定制的。我们将完全通过宝塔面板的图形化操作,避开90%新手会踩的坑,特别是那些连老手都可能忽略的云服务器安全组配置细节。
1. 云服务器选购与基础配置
选择云服务器就像选房子,地段(区域)和户型(配置)决定了后续的使用体验。国内三大云平台中,腾讯云的轻量应用服务器对新手最友好,阿里云的ECS性价比突出,华为云则在企业级服务上有优势。但无论选择哪家,这几个参数必须重点关注:
- CPU与内存:若依框架基础版建议2核4G起步(并发50以下足够)
- 系统镜像:CentOS 7.9或Ubuntu 20.04 LTS(宝塔面板兼容性最佳)
- 带宽:测试环境1Mbps足够,生产环境建议3Mbps以上
- 系统盘:至少40GB(日志文件会随时间增长)
重要提示:购买完成后立即在控制台重置实例密码,并开启SSH密钥对认证(比密码登录安全10倍)
云平台的安全组(防火墙)配置是第一个隐形杀手。以腾讯云为例,必须在控制台完成以下端口放行:
| 端口号 | 协议类型 | 用途说明 | 开放范围 |
|---|---|---|---|
| 22 | TCP | SSH远程连接 | 仅限个人办公IP |
| 8888 | TCP | 宝塔面板默认端口 | 0.0.0.0/0 |
| 80 | TCP | HTTP访问 | 0.0.0.0/0 |
| 443 | TCP | HTTPS访问 | 0.0.0.0/0 |
| 3306 | TCP | MySQL数据库 | 服务器内网IP段 |
| 6379 | TCP | Redis缓存 | 服务器内网IP段 |
2. 宝塔面板的智能安装策略
通过SSH连接服务器后,只需执行一行命令即可安装宝塔面板(以CentOS为例):
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
安装过程中会遇到两个关键选择:
-
极速安装 vs 编译安装
- 极速安装:使用预编译的二进制包,5分钟完成,适合测试环境
- 编译安装:从源码构建,耗时30分钟以上,性能优化更好
-
软件版本选择
- MySQL:生产环境推荐5.7(若依框架兼容性好)
- PHP:选择7.4(尽管若依是Java项目,但可能用到PHPMyAdmin)
- Nginx:最新稳定版即可
安装完成后,浏览器访问http://服务器IP:8888进入面板,立即完成这三项安全加固:
- 修改默认8888端口为随机五位数端口
- 在面板设置中绑定访问域名(防止IP暴露)
- 开启BasicAuth二次认证
3. 若依项目部署的五个致命陷阱
3.1 数据库权限的隐形炸弹
宝塔安装的MySQL默认只允许localhost连接,必须执行以下操作:
-- 在宝塔终端执行
mysql -u root -p
> use mysql;
> update user set host='%' where user='root';
> flush privileges;
然后修改ruoyi-admin/src/main/resources/application-druid.yml中的配置:
# 原配置
url: jdbc:mysql://localhost:3306/ry?useSSL=false
# 修改为
url: jdbc:mysql://服务器内网IP:3306/ry?useSSL=false&serverTimezone=Asia/Shanghai
3.2 Redis密码的连环坑
宝塔的Redis默认无密码,这会导致若依报错"Connection refused"。解决方案:
- 在宝塔Redis设置中添加密码(如:RuoYi@123)
- 修改
application.yml:
redis:
host: 127.0.0.1
port: 6379
password: RuoYi@123 # 新增这行
timeout: 3000
3.3 前端打包的路径陷阱
在ruoyi-ui/.env.production中:
# 错误的绝对路径写法
VUE_APP_BASE_API = 'http://123.123.123.123:8080'
# 正确的相对路径写法
VUE_APP_BASE_API = '/api'
3.4 Nginx代理的跨域魔术
宝塔的Nginx配置需要增加这段关键代码:
location /api/ {
proxy_pass http://127.0.0.1:8080/;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
3.5 文件权限的隐藏杀手
上传到服务器的jar包经常因权限问题无法执行:
# 在宝塔终端执行
chmod +x /www/project/ruoyi-admin.jar
chown -R www:www /www/project
4. 一键式部署检查清单
在最终启动项目前,用这个清单核对所有配置:
- [ ] 云服务器安全组已放行80、443、后端端口(默认8080)
- [ ] 宝塔面板→安全→防火墙已放行相同端口
- [ ] MySQL的root账户已开启远程访问
- [ ] Redis密码与配置文件一致
- [ ] 前端打包使用的API地址是相对路径"/api"
- [ ] Nginx配置了正确的静态资源路径和代理规则
- [ ] jar文件具有可执行权限(x)
- [ ] 检查日志文件是否有报错:
tail -n 100 /www/wwwlogs/nginx_error.log journalctl -u nginx -b
当所有检查项通过后,在宝塔的"网站"→"Java项目"中添加项目,选择上传的jar包,JDK版本与本地开发环境一致(可通过java -version验证)。启动成功后,访问域名应该能看到若依的登录界面。
记得第一次成功登录时,我特意截图发了朋友圈——原来Linux部署也可以不用记住那些可怕的命令行参数。宝塔面板就像给服务器装上了方向盘和仪表盘,让每个开发者都能成为自己项目的运维工程师。
更多推荐
所有评论(0)