最近需要在Linux 上部署javaweb 项目,javaweb 项目可以自己打包成war包,或者jar 包部署,下面说一下2种包的部署方式。
以下长文警告,点击目录快速访问
目录
部署war 包
一:将springboot项目打包成war包
排除内置tomcat
添加servlet-api的依赖
配置打包类型
在启动类继承SpringBootServletInitializer,重载configure方法
war打包
二:打开宝塔面板,部署war 包
把war包上传到 webapp目录下
添加网站
开启 tomcat 服务
访问项目
注意的点
部署jar 包
一:把springboot 打成jar包
配置maven
打包jar
二:打开宝塔面板,部署jar 包
添加网站
上传jar包到网站根目录
运行jar包
第一种方式:使用nohup命令后台运行
第二种方式:使用宝塔自带工具进行部署
第三种方式,编写shell脚本
拓展
静态文件分离部署
部署war 包
一:将springboot项目打包成war包
!如果已经打包好了war包,可直接跳过当前步骤
排除内置tomcat
org.springframework.bootgroupId>
spring-boot-starter-tomcatartifactId>
exclusion>
exclusions>
添加servlet-api的依赖
javax.servletgroupId>
javax.servlet-apiartifactId>
providedscope>
dependency>
如下
配置打包类型
warpackaging>
在启动类继承SpringBootServletInitializer,重载configure方法
war打包
点击右边的tool bar -> maven project
点击clean 清除旧包,
点击package 打包
查看控制台输出信息,build success 表示成功
如下
二:打开宝塔面板,部署war 包
把war包上传到 webapp目录下
一般目录为:/www/server/tomcat/webapps/
解压缩war包,然后简化一下名字
添加网站
如果没有域名,直接写你服务器的ip地址就行了,或者随便写一个域名www.baidu.com ,反正人家也解析不到你这里,随便填一个就行。
如果有域名,直接添加A记录,然后ip绑定到 你服务器的ip。
我这里通过域名管理,解析A记录,绑定二级域名到本服务器ip
注意! 这里的根目录要绑定到刚刚的war包项目位置
添加成功:
这几个文件是添加网站后,宝塔自动创建的,不想用可以删掉
开启 tomcat 服务
访问项目
点击启用tomcat 过几分钟基本就能访问到你的项目了,
如果没有域名的话,访问路径就是 http://你的服务器ip:8080/项目名/
有域名,直接访问域名即可: http://war.klblog.top:8080 (下面我设置tomcat端口为80,所以不用加8080端口即可访问到)
注意的点
tomcat 的访问域名要设置成80端口,才能通过纯域名访问。如果是8080端口,域名访问则为: http://war.klblog.top:8080/
修改为80端口,配置文件如下:
保存,重启项目,等待几分钟之后,查看安全组策略,端口是否被监听。显示正常,即为tomcat成功启动。
官网解释如下:
部署jar 包
一:把springboot 打成jar包
配置maven
如果配置过war包,则需要注释掉相应配置!
如果之前是打成war包的,注意packaging标签是不是为war,需要改成jar
jarpackaging>
删掉排除tomcat包的配置
然后把启动类的configure方法也删掉
打包jar
springboot 默认打jar 包,如果之前未配置过war包,可以直接点右边的maven 项目 然后 clean 最后 install
查看控制台,build success 表示成功,并且给出了打包后的文件路径
查看打包文件
二:打开宝塔面板,部署jar 包
添加网站
这里的话域名怎么填写,借鉴war包步骤中的方法。
主要就是根目录可以不用更改,这里只需要填写域名,然后点击提交
上传jar包到网站根目录
这里可以外置配置文件,如果没有的话,默认使用jar包里的。
运行jar包
第一种方式:使用nohup命令后台运行
进入ssh终端,cd到项目跟目录 然后输入:
nohup java -jar 你的jar包名.jar > 日志文件名.log 2>&1 &
nohup命令的用法:https://www.cnblogs.com/keystone/p/11159665.html
如下:
可以看到创建了output 日志文件,代表成功执行命令。
启动成功。
第二种方式:使用宝塔自带工具进行部署
先根据第一种方式,创建网站。上传jar包,然后再进行下面的步骤!
在宝塔软件商店,安装这个软件
安装好之后,点击添加项目,选择jar包,输入端口号,确定。等待几分钟即可访问项目。
第三种方式,编写shell脚本
先将你打包好的jar包重命名为 springboot.jar
在项目的同级目录下,创建2个文件
start.sh
#!/bin/sh
rm -f tpid
nohup java -jar -Dloader.path=classes,lib 这里写你项目的jar包例如:springboot.jar --server.port=这里是端口号 > ./logs/console.log 2>&1 &
echo $! > tpid
echo Start Success!
stop.sh
#!/bin/sh
APP_NAME=这里写你项目jar包名字例如:springboot
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Stop Process...'
kill -15 $tpid
fi
sleep 5
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Kill Process!'
kill -9 $tpid
else
echo 'Stop Success!'
fi
然后进入终端,进入项目所在目录,
执行命令 ./start.sh 看到 Start Success! 说明开启成功
执行命令 ./stop.sh 看到 Stop Success! 说明成功关闭
请记得放行指定的端口!
第一和第二种方式,都访问成功。
拓展
静态文件分离部署
很多时候,我们需要更改一些springboot的配置,但是打包成jar 后配置文件跟着一起打包了,这个时候我们就要分离静态文件
很简单,只需要在启动的时候指定路径就好了
下面创建2个文件
#!/bin/sh
rm -f tpid
nohup java -jar -Dloader.path=classes,lib springboot.jar --server.port=9001 > ./logs/console.log 2>&1 &
echo $! > tpid
echo Start Success!
以上就是全部内容,如果有任何错误的地方,请大家指正。谢谢