首页 / 亚洲服务器 / 正文
SpringBoot项目部署服务器防秃指南从打包到上线的骚操作全解析

Time:2025年03月25日 Read:4 评论:0 作者:y21dr45

关键词:springboot部署服务器

SpringBoot项目部署服务器防秃指南从打包到上线的骚操作全解析

---

一、「从入门到跑路」的经典剧情

大家好!我是某不知名互联网公司的「野生运维侠」,江湖人称「重启圣手」。今天要和大家聊聊一个让程序员又爱又恨的话题——Spring Boot项目部署服务器

如果你也有过这样的经历:

1. 本地跑得好好的项目,「一上线就404」;

2. 深夜收到老板微信:「小X啊!服务器怎么挂了?」(而你正在峡谷里推塔);

3. 对着命令行界面疯狂敲`ps -ef | grep java`却一脸懵圈...

那么恭喜你!这篇融合了血泪教训的「防秃指南」,将用冰箱说明书级的大白话+骚操作案例带你通关!

二、「打包篇」:你的代码需要一个「集装箱」

1. Jar包 vs War包:胖罐子和瘦罐子的哲学

Spring Boot默认打包成Fat Jar(胖罐子)——内置Tomcat、依赖库全塞进去的「自嗨型选手」。优点是「一键启动」,缺点是体积大(想象你网购一个牙刷却收到冰箱大小的纸箱)。

而War包则是「瘦罐子」,需要扔进外置Tomcat里运行(适合传统Java Web项目)。但既然用了Spring Boot,「胖罐子」才是官方推荐姿势!

骚操作案例

用Maven打包时突然报错`Failed to execute goal...`?试试这三板斧:

```bash

mvn clean

清理旧编译文件(相当于删了重写)

mvn package

重新打包(记得先存盘)

mvn spring-boot:run

本地测试能否运行(别直接上生产!)

```

2. Profile切换:「一套代码走天下」的秘诀

开发环境用H2内存数据库?生产环境切MySQL?在`application.properties`里玩「分身术」吧!

```properties

application-dev.properties(开发环境)

spring.datasource.url=jdbc:h2:mem:testdb

application-prod.properties(生产环境)

spring.datasource.url=jdbc:mysql://localhost:3306/prod_db?useSSL=false

启动命令激活Profile

java -jar myapp.jar --spring.profiles.active=prod

三、「服务器选型篇」:你的代码住什么「房子」?

1. Linux服务器的「学区房攻略」

- Ubuntu/CentOS:新手推荐Ubuntu(社区资源多),企业常用CentOS(稳定但快停更了);

- 内存至少1G:别让你的应用和系统抢内存打架;

- 开放安全组端口:记住这三个必开端口——22(SSH)、80/443(HTTP/HTTPS)、应用端口(比如8080)。

2. Tomcat还是Jetty?不!你甚至不用选!

因为Spring Boot内置了Tomcat!直接`java -jar`就能启动服务。但如果你非要折腾外置Tomcat...请记住这个真理:改配置一时爽,排错火葬场

四、「上线篇」:从本机到服务器的「奇幻漂流」

Step1:「搬家工具人」SCP与SFTP

上传Jar包到服务器的两大神器:

SCP命令示例(适合小文件)

scp -P 22 target/myapp.jar root@192.168.1.100:/home/ubuntu

WinSCP或FileZilla(可视化操作友好)

Step2:「守护进程模式」——让程序学会自己加班

直接运行`java -jar`会有一个致命问题:关掉SSH窗口程序就退出了!这时候需要祭出nohupsystemd服务两大法宝:

```bash

nohup简单版(日志输出到nohup.out)

nohup java -jar myapp.jar &

systemd高级版(推荐姿势)

sudo vi /etc/systemd/system/myapp.service

文件内容示例👇

[Unit]

Description=My Spring Boot App

After=syslog.target

[Service]

User=ubuntu

ExecStart=/usr/bin/java -jar /home/ubuntu/myapp.jar

Restart=always

崩溃自动重启

[Install]

WantedBy=multi-user.target

启用服务

sudo systemctl daemon-reload

sudo systemctl start myapp

sudo systemctl enable myapp

开机自启

Step3:「反向代理の奥义」——Nginx当门卫大爷

想让外部通过域名访问?用Nginx做反向代理!配置示例👇 :

```nginx

server {

listen 80;

server_name yourdomain.com;

location / {

proxy_pass http://localhost:8080;

Spring Boot默认端口

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

}

HTTPS强制跳转等进阶操作请自行解锁

}

五、「翻车急救包」——程序员の自我修养

Q1:「端口被占用!」怎么办?

- `netstat -tunlp | grep :8080`查凶手进程ID;

- `kill -9 PID`强制终止进程;

- 终极奥义:改应用端口!在配置里加`server.port=9090`。

Q2:「内存溢出!」如何优雅地GC?

启动命令加JVM参数拯救世界👇 :

```bash

java -jar -Xms512m -Xmx1024m myapp.jar

初始堆512M,最大堆1G

```

Q3:「日志去哪儿了?」

Spring Boot默认日志输出到控制台。建议用Logback配置日志文件路径👇 :

```xml

${LOG_PATH}/application.log

六、「课后加餐」——偷懒是人类进步的阶梯

如果你觉得手动上传Jar包太原始...试试这些进阶姿势👇 :

1. Jenkins自动化部署:「点一下按钮喝杯咖啡就能上线版」;

2. Docker容器化封装:「把应用和环境一起打包成集装箱版」;

3. 云原生全家桶K8s:「老板再也不用担心我删库跑路版」。

「结语」——程序员の仪式感

现在你已经掌握了Spring Boot部署的基本姿势!最后送大家一句真理:「本地能跑不算赢,上了生产不宕机才是真本事」。如果让你少熬了一夜改Bug...记得回来点赞收藏转发三连!(毕竟我的发际线需要你们的安慰 😭 )

TAG:springboot部署服务器,如何将springboot部署到服务器,springboot项目如何部署,springboot在服务器上运行,spring boot部署服务器

标签:
排行榜
关于我们
「好主机」服务器测评网专注于为用户提供专业、真实的服务器评测与高性价比推荐。我们通过硬核性能测试、稳定性追踪及用户真实评价,帮助企业和个人用户快速找到最适合的服务器解决方案。无论是云服务器、物理服务器还是企业级服务器,好主机都是您值得信赖的选购指南!
快捷菜单1
服务器测评
VPS测评
VPS测评
服务器资讯
服务器资讯
扫码关注
鲁ICP备2022041413号-1