Spring boot项目打包发布到服务器

版权声明:我的博客 © listar.top | https://blog.csdn.net/qq_36120267/article/details/84284548

昨天我将项目发布到了服务器,遇到了一些坑,在这里记录下来。。

首先说明我使用的方法:spring boot 打包成jar包,内置tomcat发布,使用ngnix转发到tomcat端口

方法一:使用外置tomcat发布项目

1、打包成war包,可以使用命令在项目根目录下打包,需要在环境变量中配置好maven变量

mvn clean package

或者在eclipse右键项目 - run as - maven install

使用eclipse生成的war在target目录下,使用命令在根目录执行,war包则在根目录下。

2、将war放到服务器tomcat的webapps目录下

这里推荐使用MobaXterm,这个远程工具上传文件比较简单

3、添加server.xml配置,在Engine节点中,新增如下代码

<Host name="www.daxinclub.com" autoDeploy="false" unpackWARs="true" appBase="webapps/daxinclub">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="daxinclub.com_access_log." suffix=".txt" pattern="%h %l %u %t &quot;%r&quot; %s %b" />
</Host>

4、重启tomcat

重启tomcat后,webapps下的war包会自动被解压缩成文件夹

你也可以不放在webapps目录下,使用命令解压war包,但必须放到tomcat目录下,解压命令如下

jar -xvf daxinclub.war

此命令解压到当前文件夹,你server.xml的appBase配置记得跟着改哦

建议使用命令解压后,再重启tomcat一次。tomcat重启完毕,通过服务器ip地址+设置的端口号就可以直接访问了。

方法二:使用内置tomcat发布项目(推荐)

1、打包成jar包或war包,打包方式同方法一。

jar包还是war包,再pom.xml里面改一改就好了,jsp开发要使用war包哦

2、放在项目根目录或任意目录下,使用命令开启项目

java -jar daxinclub.jar

3、通过服务器ip地址+设置的端口号就可以直接访问了。

使用内置tomcat很简单的有没有!!

可能会遇到的问题:

问题1:打包失败

选择项目,project - clean ,项目会重新build,再试试就行了。

问题2:外置tomcat始终无法访问 或 命令启动时提示找不到mian方法,需要再pom.xml里加上如下代码,重新打包

<build>
  <plugins>
  	<plugin>
  		<groupId>org.springframework.boot</groupId>
 		<artifactId>spring-boot-maven-plugin</artifactId>
  	</plugin>
  </plugins>
 </build>

添加之后,会自动引入maven关联和main方法入口。

问题3:使用阿里云服务器,端口设置的是8080,为什么无法访问(例如:域名:8080 或 端口号:8080

在域名的安全组中,需要开启你的端口号,详见 阿里云服务器怎么开启或关闭8080端口?

问题4:使用ngnix如何指向tomcat的端口?

在ngnix.conf.defalut中新增server配置

server {
        listen 80;
        server_name  localhost;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        location / {
		    proxy_pass http://127.0.0.1:8080 ;
            proxy_set_header Host $host:80;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Via "nginx";
		    port_in_redirect off;
       }
}

监听80端口,指向tomcat的8080端口,此时,问题3你需要开启的端口是80端口哦

重启ngnix后你可以直接通过域名访问了(例如:域名 或 端口号

我花了2小时的时间才弄完,祝大家发布项目一次成功!

本文原创,转账请标明出处。

猜你喜欢

转载自blog.csdn.net/qq_36120267/article/details/84284548