腾讯云服务器怎么部署Spring Boot项目加Vue前端能直接访问吗

很多朋友买完腾讯云服务器后,最头疼的就是项目到底怎么上线。尤其是用Spring Boot做后端、Vue做前端这种常见组合,本地跑得好好的,一到云上就打不开页面、接口404、跨域报错一堆。别急,下面咱们就一步步把这个流程走通,从买服务器开始到前后端都能通过公网正常访问,全部讲清楚。

先确认你的项目结构和打包方式

在动手部署前,得先知道自己手里有什么。假设你本地的项目是这样的:

  • 后端:Spring Boot项目,使用Maven或Gradle构建,最终可以打包成一个可运行的jar文件。
  • 前端:Vue项目,通过npm run build命令生成静态资源文件(通常在dist目录下)。
  • 通信方式:前端通过axios或其他方式请求后端API,比如http://localhost:8080/api/login

这种架构是最常见的分离式部署方案,后端独立运行,前端作为静态页面由Web服务器(如Nginx)托管。

第一步:买一台合适的腾讯云服务器

要部署项目,首先得有台服务器。如果你还没买,建议选轻量应用服务器,管理更简单,适合新手。系统推荐选CentOS 7.6或更高版本,或者Ubuntu 20.04,这类系统社区支持好,教程多。

配置方面,起步用2核2G内存、50GB系统盘、3Mbps带宽基本够用。记住,你买的这台机器会有一个公网IP,后面所有访问都靠它。

第二步:连接上你的云服务器

买完服务器后,需要通过SSH工具登录进去操作。Windows用户可以用MobaXterm、Xshell,Mac或Linux用户直接用终端就行。

  1. 在腾讯云控制台找到你的实例,复制公网IP地址。
  2. 打开SSH工具,新建连接,输入IP、端口22、用户名root
  3. 第一次登录会提示设置密码,去控制台重置一个符合要求的密码(大小写+数字+特殊符号,12位以上)。
  4. 连接成功后,你会看到命令行界面变成[root@xxx ~],说明已经进去了。

第三步:在服务器上安装必要的运行环境

你的项目要跑起来,服务器上得有对应的环境。Spring Boot需要Java,Vue打包后的静态文件需要Web服务器来托管。

安装Java环境(JDK)

Spring Boot项目依赖Java运行。我们以JDK 11为例,它是目前比较稳定且广泛支持的版本。

执行下面命令安装:

yum install -y java-11-openjdk-devel

安装完后验证是否成功:

java -version

如果看到类似openjdk version "11.0.xx"的输出,说明JDK安装没问题了。

安装Nginx作为前端静态服务器

Vue打包后是、CSS、JS这些静态文件,需要用Web服务器来提供访问。Nginx轻量、高效,是首选。

安装Nginx:

yum install -y nginx

启动Nginx并设置开机自启:

systemctl start nginx
systemctl enable nginx

现在你在浏览器输入服务器的公网IP,应该能看到Nginx的欢迎页面,说明Web服务已经跑起来了。

第四步:把项目上传到服务器

接下来要把你本地打包好的文件传到服务器上。

上传Spring Boot的jar包

在你本地项目根目录执行:

mvn clean package

打包完成后,会在target目录下生成一个.jar文件,比如myapp-0.0.1-SNAPSHOT.jar

使用SCP、WinSCP或MobaXterm的拖拽功能,把这个jar文件上传到服务器的/root/myapp/目录下(你可以自己创建这个目录)。

mkdir -p /root/myapp

上传Vue的dist文件

在Vue项目目录执行:

npm run build

生成的dist文件夹里就是所有前端资源。把整个dist文件夹上传到服务器的/usr/share/nginx/目录下,替换默认内容。

rm -rf /usr/share/nginx//
 然后把本地dist里的所有文件传进去

第五步:处理前后端分离的跨域问题

本地开发时,前端启动一个开发服务器(比如localhost:8080),后端在localhost:9090,浏览器因为同源策略会阻止跨域请求。

上线后我们不再让前端直接访问后端IP+端口,而是统一通过域名或IP访问,由Nginx来做反向代理,这样就能避免跨域。

修改前端请求地址为相对路径

在Vue项目中,把所有API请求地址从http://localhost:8080/api改成/api

例如在main.js中设置axios默认baseURL:

axios.defaults.baseURL = '/api';

配置Nginx反向代理后端接口

编辑Nginx配置文件:

vim /etc/nginx/nginx.conf

找到server块,在location /后面添加一个新的location规则:

location /api {
    proxy_pass http://localhost:8080;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
}

保存后重启Nginx:

systemctl restart nginx

这样一来,当浏览器访问http://你的IP/api/login时,Nginx会自动把请求转发到本机8080端口的Spring Boot应用。

第六步:启动Spring Boot后端服务

现在回到你上传jar包的目录:

cd /root/myapp

使用nohup命令后台运行jar包,避免关闭SSH后进程终止:

nohup java -jar myapp-0.0.1-SNAPSHOT.jar --server.port=8080 > app.log 2>&1 &

这条命令的意思是:

  • java -jar:运行jar包。
  • --server.port=8080:指定启动端口为8080。
  • nohup:忽略挂起信号,保证后台运行。
  • > app.log:把日志输出到app.log文件。
  • 2>&1:把错误流也重定向到输出流。
  • &:放在后台执行。

可以用下面命令查看进程是否在跑:

ps aux | grep java

看到有java进程并且监听8080端口,就说明后端已经启动成功。

第七步:开放服务器端口让外网能访问

即使你服务启动了,Nginx也配好了,如果腾讯云的防火墙没开对应端口,外面还是访问不了。

你需要去腾讯云控制台配置安全组规则

  1. 进入腾讯云控制台 → 云服务器 → 安全组。
  2. 找到你服务器关联的安全组,点击“配置规则”。
  3. 点击“添加规则”,开放以下端口:
    • 80端口:HTTP流量,前端页面和Nginx代理走这个。
    • 443端口:HTTPS流量(如果后面要配SSL证书)。
    • 8080端口:虽然Nginx做了代理,但有时调试需要直接访问后端,也可以先开放。
  4. 每条规则的“来源”设为0.0.0.0/0,表示允许任何IP访问。

注意:Nginx默认监听80端口,Spring Boot监听8080端口,只有这些端口在安全组里放行了,公网才能访问到。

第八步:验证整个链路是否通了

所有配置做完后,最后一步是测试。

测试前端页面能否打开

在浏览器输入你的服务器公网IP,比如http://123.123.123.123,应该能看到你的Vue项目首页加载出来。

打开浏览器开发者工具(F12),看Network选项卡里有没有404或502错误。

测试API接口是否能调通

在页面上触发一个登录或获取数据的操作,观察请求的URL是不是/api/login这样的路径。

如果返回200,并且有正确数据,说明Nginx反向代理生效,后端接口也正常响应。

如果返回502 Bad Gateway,说明Nginx能收到请求但转发失败,常见原因是后端没启动或端口不对。

如果返回404,检查Nginx配置的proxy_pass地址是否正确,以及Spring Boot是否真的在监听8080端口。

第九步:一些常见的问题排查点

上线过程中总会遇到点小问题,下面列出几个高频坑,帮你快速定位。

现象 可能原因 解决办法
输入IP打不开页面 Nginx没启动或端口未放行 检查systemctl status nginx,确认安全组开了80端口
页面能打开但接口404 前端请求路径没改,还在请求localhost:8080 确保axios的baseURL是/api而不是完整URL
接口返回502 后端jar没启动或挂了 ps aux | grep java查看,重启jar包
上传文件失败 Nginx默认上传大小限制为1M 在nginx.conf的http块中添加client_max_body_size 50m;
页面出现空白 dist文件没传全或路径错了 检查/usr/share/nginx/目录下是否有index.等文件

第十步:让项目更稳定的小建议

现在你的项目已经能跑了,但还可以做点优化让它更可靠。

  • 使用进程管理工具:用nohup虽然能后台运行,但一旦jar崩溃不会自动重启。建议安装supervisor来管理Java进程,实现自动拉起。
  • 配置日志轮转:长时间运行的日志会越来越大,可以配置logrotate定期压缩归档。
  • 考虑使用宝塔面板:如果你觉得命令行操作麻烦,可以在腾讯云服务器上安装宝塔面板,它提供图形化界面管理网站、数据库、防火墙等,对新手更友好。安装后通过http://你的IP:8888访问,记得在安全组里开放8888端口。
  • 域名绑定:如果你有域名,可以在DNS服务商那里做A记录指向服务器IP,然后在Nginx里配置server_name,这样就能用www.yoursite.com访问了。

整个部署流程走下来,核心就是三点:环境装好、代码传上去、端口放行。只要这三步不出错,Spring Boot + Vue项目在腾讯云服务器上运行是完全没问题的。

如果你还没服务器,可以先去体验一下 腾讯云服务器,选个轻量应用服务器起步,按照上面步骤一步步来,很快就能看到自己的项目跑在公网上了。

未经允许不得转载: 本文基于人工智能技术撰写,整合公开技术资料及厂商官方信息,力求确保内容的时效性与客观性。建议您将文中信息作为决策参考,并以各云厂商官方页面的最新公告为准。云服务商优惠信息实时变动,本文内容仅供参考,最终价格请以官方活动页面公示为准。便宜云服务器优惠推荐 & 建站教程-服务器优惠推荐 » 腾讯云服务器怎么部署Spring Boot项目加Vue前端能直接访问吗