宝塔面板部署Spring|宝塔面板部署Spring Boot项目
一般的 Spring Boot 项目打包完是 .jar
文件,已内嵌了 Tomcat 服务器,但是当我们部署到生产环境的时候一般用的是 .war
包,这次我们使用宝塔面板来完成项目的环境搭建和部署。
此教程所使用的环境:
- Windows 10 Version 1903
- JDK 8
- Maven 3.6
- Spring Boot 2.2
- CentOS 7.7
- 宝塔面板 7.0
- Tomcat 9
- Nginx 1.17
.war
包,需要对项目构建进行一些设置,以 Maven 为例,修改 pom.xml
。修改打包方式为
war
,注意最后一行:cn.shadowcat
baotatest
0.0.1-SNAPSHOT war
【宝塔面板部署Spring|宝塔面板部署Spring Boot项目】加入这一项依赖设置:
org.springframework.boot
spring-boot-starter-tomcat
provided
在包的根目录新建一个
ServletInitializer
类(比如在我的项目里,与 BaotatestApplication
类同级),内容类似如下:package cn.shadowcat.baotatest;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class BaotatestApplication {public static void main(String[] args) {
SpringApplication.run(BaotatestApplication.class, args);
}}
然后再回到项目根目录(有
pom.xml
的目录),进行编译:mvn clean package
如果要跳过测试,就输入:
mvn clean package -Dmaven.test.skip=true
编译完成之后就能在
target/
目录下找到我们的 .war
包,比如我是 baotatest-0.0.1-SNAPSHOT.war
。接下来配置服务器环境,首先宝塔面板的安装不再赘述,到其“软件商店”安装好:
- Tomcat(必须,要求和本地环境一致,比如我用的是 Spring Boot 2.2,那么就使用 Tomcat 9)
- Nginx(非必须,可以不用安装,配置反向代理所需)
8080
端口(Tomcat 默认端口)。再把我们的 .war
包放进 /www/server/tomcat/webapps
目录就会自动解压部署,在同级目录生成同名文件夹(如果没有自动部署就重启一下 Tomcat,另外部署不成功的话可以去 /www/server/tomcat/logs
看看日志文件)。此时再访问 http://example.com:8080/baotatest-0.0.1-SNAPSHOT/
就可以访问我们的应用了。后面长长的一串似乎并不好看,我们可以将其去掉,有两种方法。
一种是直接将包名改成
ROOT.war
,即可。另一种需要修改配置文件
/www/server/tomcat/conf/server.xml
,在 ...
标签内插入:
或者这样:
path
属性可以定义访问的路径,比如挂载到 /hello
上,这里我们留空就是根域名。然后再将 Tomcat 配置重载,我们就能在根目录下访问到这个项目了。
还有就是给上传目录配置静态资源映射,比如我这里的 有一个上传目录
/www/uploads
,用户上传的图片都会保存到这个 uploads
文件夹来,那如何在服务器访问这个目录呢?一样,加入:
习惯上还需要配置一下 Nginx 反向代理 Tomcat。
去宝塔的“网站”页面里新建一个站点,除了域名保持默认就行了。
然后在其“设置”中配置“反向代理”,目标域名就是 Tomcat 的地址,比如
http://dev.shadowcat.cn:8080
,发送地址用 $host
就可以了,其他保持默认即可,最后访问一下 Nginx 即可成功返回结果。推荐阅读
- Beego打包部署到Linux
- 私有化轻量级持续集成部署方案--03-部署web服务(下)
- Spring|Spring Boot部署到Resin遇到的问题
- 如何在阿里云linux上部署java项目
- 8、Flask构建弹幕微电影网站-搭建后台页面-密码修改、主页控制面板
- 部署专题集合
- jar|springboot项目打成jar包和war包,并部署(快速打包部署)
- 一键编译部署Mysql
- 8月16日|8月16日 全网备份
- 改变企业沟通环境|改变企业沟通环境 从部署企业IM开始