当前位置: 首页 > news >正文

宝塔面板部署SpringBoot+Vue项目,我踩过的那些坑(含路由配置、端口占用、打包错误解决)

宝塔面板部署SpringBoot+Vue项目实战避坑指南

1. 环境准备与基础配置

在开始部署之前,确保服务器环境已经正确配置。对于CentOS系统,建议使用7.x版本,这是目前最稳定且兼容性最好的选择。通过SSH工具连接服务器后,执行以下命令安装宝塔面板:

yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec

安装完成后,系统会显示面板的访问地址和默认账号密码。首次登录后,建议立即修改这些默认凭证,并安装必要的运行环境:

  • Nginx:1.18+版本
  • MySQL:5.7或8.0版本
  • Java:根据SpringBoot版本选择JDK8或JDK11

提示:在阿里云等云服务器上部署时,记得在安全组中放行宝塔面板默认端口(8888)以及项目所需的其他端口。

2. 前端Vue项目部署常见问题

2.1 路由配置404问题

这是Vue项目部署中最常见的问题之一。当刷新页面或直接访问子路由时出现404错误,通常是因为Nginx没有正确配置。解决方法是在宝塔面板中找到对应的网站设置,修改Nginx配置文件:

location / { try_files $uri $uri/ /index.html; }

2.2 打包错误与优化

在打包Vue项目时,可能会遇到各种错误。以下是几个常见问题及解决方案:

  1. 内存不足:在打包大型项目时,Node.js可能会因内存不足而崩溃。可以通过增加内存限制解决:
export NODE_OPTIONS=--max_old_space_size=4096 npm run build
  1. 依赖冲突:删除node_modules和package-lock.json后重新安装依赖:
rm -rf node_modules package-lock.json npm install
  1. 路径问题:在vue.config.js中设置正确的publicPath:
module.exports = { publicPath: process.env.NODE_ENV === 'production' ? '/' : '/', }

3. 后端SpringBoot项目部署要点

3.1 数据库连接配置

在application.properties或application.yml中,确保数据库连接信息正确:

spring: datasource: url: jdbc:mysql://服务器IP:3306/数据库名?useSSL=false&serverTimezone=Asia/Shanghai username: 数据库用户名 password: 数据库密码

注意:宝塔面板创建的MySQL数据库默认只允许本地连接,如果需要远程连接,需在宝塔的数据库管理中设置"权限"为"所有人"或指定IP。

3.2 端口占用问题

当启动SpringBoot应用时,可能会遇到端口被占用的情况。可以通过以下命令查找并释放端口:

# 查看端口占用情况 netstat -lnp | grep 8080 # 杀死占用进程 kill -9 进程ID

3.3 JAR包运行与日志管理

使用nohup命令后台运行SpringBoot应用并记录日志:

nohup java -jar your-application.jar > app.log 2>&1 &

为了方便管理,可以创建一个简单的启动脚本start.sh:

#!/bin/bash nohup java -Xms512m -Xmx1024m -jar your-application.jar > app.log 2>&1 & echo $! > pid.file

4. 前后端联调与Nginx配置

4.1 反向代理配置

在宝塔面板中创建网站后,配置Nginx反向代理将前端请求转发到后端API:

location /api/ { proxy_pass http://127.0.0.1:后端端口/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }

4.2 静态资源缓存优化

对于Vue打包生成的静态资源,可以设置长期缓存以提高性能:

location /static/ { expires 1y; add_header Cache-Control "public"; } location /img/ { expires 1y; add_header Cache-Control "public"; }

4.3 HTTPS配置

在宝塔面板中可以一键申请SSL证书并配置HTTPS。配置完成后,强制HTTP跳转到HTTPS:

server { listen 80; server_name yourdomain.com; return 301 https://$server_name$request_uri; }

5. 性能监控与优化

5.1 内存泄漏排查

当Java应用运行一段时间后出现内存泄漏,可以使用以下命令生成堆转储文件分析:

jmap -dump:format=b,file=heap.hprof 进程ID

5.2 数据库性能优化

在宝塔面板的MySQL管理中,可以开启慢查询日志:

SET GLOBAL slow_query_log = 'ON'; SET GLOBAL long_query_time = 1; SET GLOBAL slow_query_log_file = '/var/log/mysql/mysql-slow.log';

5.3 Nginx性能调优

根据服务器配置调整Nginx工作进程数和连接数:

worker_processes auto; events { worker_connections 1024; multi_accept on; }

6. 自动化部署方案

6.1 宝塔WebHook实现自动部署

在宝塔面板的"软件商店"中安装WebHook插件,然后添加一个钩子:

#!/bin/bash cd /www/wwwroot/your-project git pull origin master npm install npm run build pm2 restart all

6.2 使用PM2管理Node进程

对于需要运行Node服务的项目,可以使用PM2进行管理:

npm install pm2 -g pm2 start npm --name "your-app" -- run start pm2 save pm2 startup

6.3 备份策略配置

在宝塔面板的"计划任务"中设置定期备份:

  1. 数据库备份:每天一次,保留最近7天
  2. 网站文件备份:每周一次,保留最近4周
  3. 项目代码备份:每次部署前自动备份

7. 疑难杂症解决方案

在实际部署过程中,总会遇到一些意想不到的问题。以下是一些常见问题的快速解决方法:

  1. 前端样式丢失:检查publicPath配置是否正确,确保静态资源路径无误
  2. 跨域问题:在后端添加CORS配置或通过Nginx代理解决
  3. 上传文件大小限制:在Nginx和SpringBoot中分别调整配置
  4. 时区问题:在服务器和Java应用中统一设置为东八区
  5. 字体文件加载失败:在Nginx中添加字体文件的MIME类型

经过多次项目部署实践,我发现最耗时的往往不是技术问题,而是环境配置和权限设置。建议在部署前做好详细规划,记录每个步骤的操作和配置,这样在遇到问题时可以快速定位和解决

http://www.jsqmd.com/news/855966/

相关文章:

  • 2026年评价高的青岛海外独立网站/莱州外贸独立网站优选公司推荐 - 行业平台推荐
  • 2026年评价高的昆明小规模代理记账/代理记账/昆明进出口企业代理记账/昆明代理记账服务型公司推荐 - 行业平台推荐
  • 2026年筛网围栏生产厂家甄选指南:洲冠领衔,过滤筛网生产厂家|方孔筛网源头厂家|编织矿筛网源头厂家|钢筛网源头厂商盘点 - 栗子测评
  • BK3633的AOA定位到底怎么玩?从选天线到调试,一份给物联网工程师的避坑指南
  • 从Keil转战IAR的嵌入式工程师,这5个‘水土不服’的编译问题你遇到了吗?
  • 智能车竞赛光电组决赛核心技术:从PID控制到图像处理的系统工程实践
  • 软考高项案例分析:考点归纳总结
  • 2026年知名的青岛网站推广/烟台百度推广/烟台ai智能推广高评分公司推荐 - 行业平台推荐
  • 别再死记硬背公式了!用Matlab和AD9361实例,手把手拆解半带与多相滤波器的FPGA实现
  • TongHttpServer部署避坑大全:从证书配置、日志切割到静态权限,解决6.0.1.0版那些“坑”
  • 别再复制粘贴了!手把手教你为STM32F103C8T6(BluePill)移植LVGL V8.3.11
  • PEMS交通数据实战:用Python从原始TXT到可视化分析的完整Pipeline
  • 2026年比较好的玻璃清洗设备横向对比厂家推荐 - 品牌宣传支持者
  • IDEA 连接远程服务器 SSH 时报错密钥权限过高怎么解决?
  • 深度盘点江苏做监测设备运维的公司有哪些?全品类污染源/VOCs废气/CEMS监测设备厂家,江苏卓正环保科技实力在线 - 栗子测评
  • 2026年评价高的三亚装饰工程装修/三亚全案装修/三亚别墅装修实力公司推荐 - 行业平台推荐
  • 物联网实战:从设备接入到云平台架构的完整系统设计指南
  • 团队协作必备:在Windows/Linux混合环境下配置Tasking TriCore浮动许可证(附状态监控脚本)
  • 用Python串口控制机械臂:从RS232协议解析到完整指令序列编程实战
  • 手把手教你用SPI配置AD9253寄存器:从芯片手册到FPGA驱动的完整避坑指南
  • 保姆级教程:在RK3588开发板上为FPGA编译并部署Xilinx XDMA驱动(ARM64架构)
  • ADS1110与51单片机I2C通信详解:手把手教你驱动并读取三路电压(附常见问题排查)
  • openssl基于ede3的加密和解密
  • SigmaStudio和A2B软件安装避坑大全:Win10/Win11系统关联DLL与插件配置一步到位
  • 终极指南:如何用VS Code和Markdown快速制作专业演示文稿
  • 告别云端API费用:用llama.cpp的server功能搭建你的私有化大模型服务
  • ESP8266刷机翻车实录:从固件版本选择到串口驱动安装,这些坑我都替你踩过了
  • TDK高可靠性MLCC五大系列解析:从材料创新到严苛应用选型指南
  • 阿钱¥¥¥openssl sm3 hmac api使用和命令行验证
  • 解析日本工程塑料厂家代理新日铁住金产品的核心价值与