springboot部署指南
本文详细介绍了SpringBoot项目的云服务器部署流程:1)配置服务器环境,包括安装JDK17、MySQL、Redis和Nginx;2)构建数据库并导入数据;3)打包前后端项目并上传至服务器;4)使用nohup命令启动后端服务;5)配置Nginx反向代理,处理前端路由和后端API请求。重点讲解了Nginx配置中proxy_pass路径转发规则的区别,以及常见错误排查方法。部署完成后可通过服务器I
超详细部署教程
一.配置云服务器环境
1.安装 Java 环境(jdk)
本地下载jdk17,然后进入到服务器上传

cd /usr/local
tar -zxvf /usr/local/jdk-17.0.12_linux-x64_bin.tar.gz
mv /usr/local/jdk-17.0.12 /usr/local/jdk17
配置环境变量
vi /etc/profile
打开后按一下 i 进入编辑模式(左下角会显示 -- INSERT --)
//jdk17 环境变量配置
export JAVA_HOME=/usr/local/JDK17
export PATH=$JAVA_HOME/bin:$PATH
按ESC退出编辑,输入:wq回车,保存并退出
source /etc/profile
让配置立即生效
java -version
如果能输出版本信息就配置正确了

2.安装并配置数据库
安装MySQL
yum install -y mysql-server
启动并设置开机自启:
systemctl start mysqld
systemctl enable mysqld
安装Redis
yum install -y redis
systemctl start redis
systemctl enable redis
3.安装nginx
yum install -y nginx
systemctl start nginx
systemctl enable nginx
4.配置防火墙
打开80端口
firewall-cmd --permanent --add-port=80/tcp
重载防火墙生效
firewall-cmd --reload
二.构建云服务器的数据库(以宝塔面板为例)
新建数据库

导入.sql文件,可以从本地数据库导出相关数据

三.打包springboot项目到服务器上
1.打包后端项目
在idea上依次执行后会生成target目录

这个就是待会要上传的jar包

2.打包前端项目
进入到前端目录执行npm run build

这个就是待会要上传的dist目录了

3.上传项目
新建lostAndfound文件夹

新建front目录和java目录,然后分别将jar包放到java目录,dist文件夹放到front目录下即可

三.启动springboot项目
进入到java目录
cd /www/wwwroot/lostAndfound/java
启动jar包
nohup java -jar /www/wwwroot/lostAndfound/java/lost-found-system-1.0.0.jar > /www/wwwroot/lostAndfound/java/lost-found.log 2>&1
nohup:让项目在后台一直运行
java -jar:运行springboot打包好的jar项目
/www/wwwroot/lostAndfound/java/lost-found-system-1.0.0.jar:jar包的完整路径
>/www/wwwroot/lostAndfound/java/lost-found.log:项目的运行日志
2>&1:把错误日志也一起写到log文件里面
lost-found.log很重要,如果后续报错记得看日志
验证服务是否启动
ps -ef|grep java

如果输出jar包路径就正确了
四.nginx配置
在宝塔面板中找到软件商店→nginx→设置→配置文件
server{
listen 80;
server_name 你的服务器IP或者域名;
location / {
root /www/wwwroot/lostAndfound/front/dist;
index index.html;
try_files $uri $uri/ /index.html;
}
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;
}
}
listen:nginx监听的端口
server_name:到时候在浏览器访问的地址
location / {...}:处理不是以/api开头的请求
root /www/wwwroot/lostAndfound/front/dist: 指定根目录
index index.html: 默认首页
try_files $uri $uri/ /index.html:前端路由处理,如果访问的路径不存在,统一返回index.html
location /api/ {...}:处理以/api开头的请求,将这些请求转发到后端服务
proxy_pass http://localhost:8080/:转发到后端服务器
proxy_set_header Host $host:设置请求头中的Host信息
proxy_set_header X-Real-IP $remote_addr:传递用户的真实 IP 地址
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for:记录代理链中的所有IP
易错点:
proxy_pass http://localhost:8080/和proxy_pass http://localhost:8080
|
方面 |
不带斜杆 |
带斜杠 |
|
路径处理 |
原样转发location路径 |
去掉location前缀转发 |
|
是否重写路径 |
不重写 |
重写 |
|
使用场景 |
location就是完整的路径前缀 |
location是代理前缀 |
proxy_pass http://localhost:8080/流程如下
前端请求:GET /api/auth/login→Nginx 匹配 location /api/→location 路径:/api/,请求路径:/api/auth/login,剩余路径:/auth/login (去掉 location 前缀)→转发给后端:GET http://localhost:8080/auth/login→后端接收:GET /auth/login
proxy_pass http://localhost:8080流程如下
前端请求:GET /api/auth/login→Nginx 匹配 location /api/→location 路径:/api/,请求路径:/api/auth/login→转发给后端:GET http://localhost:8080/api/auth/login→后端接收:GET /api/auth/login
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)