SpringBoot项目如何部署到公网(云服务器)

Posted leijue

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot项目如何部署到公网(云服务器)相关的知识,希望对你有一定的参考价值。

  • 【前言】

博主写这篇博客的时候还是个新手,把我写好的SpringBoot项目部署到公网可以访问花了两天时间,看了很多篇博客,也请教了认识的大佬,最终成功部署到云服务器。希望这便篇博客能帮一些新手填坑,少走一点弯路。

简单又重要的小概念:你的后台项目运行的花话必须启动后“命令行一直挂着不关闭”,才能够本地访问,这显然是不够人性化的,你的电脑总有关机的时候,可如果你要让别人或者自己随时随地都能访问到你的项目,就必须部署到云服务器,就相当于你把你的项目部署到了远程的另一台电脑上,只要你不欠费或者手动关闭云服务器,这个电脑就永远不会关机,所以能够让你的项目一直能够被访问。

  • 【准备工作】

我在部署工作之前准备好了一些东西,准备工作如下:

  1. 腾讯云的Centos 7云服务器(阿里云也没关系,因为是Java项目,部署到Linux系统下更好所以选择Centos)
  2. 腾讯云下买的域名(买完后需要解析,备案,腾讯人工审核,审核成功后还需要提交工信部审核,整个过程差不多近20天)
  3. SSL证书的申请(购买后也需要审核,一般一两个工作日,这里购买腾讯云里的免费SSL证书就行)

其中第三个SSL证书根据你的需求来,我需要HTTPS协议的认证,要能HTTPS访问你的项目,必须SSL证书认证。以上三步不在本文中详细阐述,整个流程需要20天左右,主要腾讯审核+工信部审核耗时,需要的请百度其它相关博客教程参考。

OK,加入如上几步你都准备好了,再准备一个工作,下载Xshell和Xftp这两个软件,其中Xshell的作用是连接你的云服务器,可以再本地电脑操控你云服务器。Xftp是用来将本地电脑和云服务器之间进行文件传输。你可以百度下载,或者在博主提供的链接里下载:Xshell & Xftp下载地址

  • 【开始部署】

启动Xshell

技术分享图片技术分享图片?

技术分享图片技术分享图片?

技术分享图片技术分享图片?

这里的用户名密码就是你购买的云服务器的用户名/密码。 登录成功后就会出现命令行的界面,你就可以写Linux的命令操作你云服务器的Linux系统。

技术分享图片技术分享图片?

 打开Xftp

技术分享图片技术分享图片?

  •  【部署环境】

云服务此时还像你刚买来电脑一样,只有操作系统,你要跑你的项目的话,还要在你的云服务器里部署环境。

例如我此处的项目,我需要Java JDK + Tomcat + mysql + nginx的环境。所以需要你手动 一 一 去安装。至于怎么安装呢?

我们此时已经通过Xshell连接上了我们的云服务器,你可以在Xshell写命令行安装你的需要的环境。由于博主在此之前很少接触Linux,对Linux下的命令行操作不熟悉,此处不详细阐述安装过程,怕误导大家,但此时你看到这多多少少已经有思路了吧?

此时只要百度“Linux下如何安装上述的环境”,既可以翻阅到大量大牛的解答。

  • 【运行项目】

如上环境都部署好后,通过maven打包好的项目,得到对应的jar包,打包完成后会保存在你项目的target目录下一个“项目名-0.0.1-SNAPSHOT.jar”文件,这个文件名你可以随意更改,比如我改成Demo.jar文件。

然后把这个jar文件通过Xftp粘贴复制到你tmocat子目录下的webapps目录下。此时书写命令行“ java -jar Demo.jar”即可运行,运行成功后你便可以输入你的ip地址+端口号访问你的项目,如果不想加端口号,金就把你的项目的端口号改成80端口。如果80端口被占用可能会运行出错,你只需要查出哪个端口被占用,停用那个进程或者给那个进程切换端口。再重新运行项目即可!

另外上述的命令行运行项目成功后关闭Xshell后,项目也会随之关闭,要想不受本地电脑影响可换成命令行“ nohup java -jar Demo.jar >> Demo.out & ”,即可。其中Demo.out是日志文件,执行命令行后还需要再回车一次,还有一个日志文件需要设置,暂时不管这些,直接换车,它自动生成.out文件。执行完后你的项目就已经在云服务器上跑起来,彻底和你本地电脑无关联了,你可以在公网随意访问。如果要关闭你的项目,只需要在项目当前目录下,查看正在执行的项目(执行命令jps),然后kill掉你正在运行的 项目的进程号就行。至此,我们就完成了整个项目的部署。

  • 【配置SSL证书】

因为我的项目这边需求需要HTTPS认证,所以需要配置SSL证书,不需要https访问的朋友这里可以不看了,当然参考一下也行

首先你要确保云服务器安装了Nginx。

  1. 配置nginx,编辑nginx.conf文件,443端口留给nginx,注意location里的8080端口,是你项目里设置的端口,建议和我一样设置成8080端口,80端口此时应该是被nginx占用了的。保存好conf文件后,重新启动nginx服务:“ nginx -s reload技术分享图片技术分享图片?

把你购买的SSL证书里的Nginx文件下的文件放到nginx.conf同级目录下,如图:技术分享图片技术分享图片?

 此时在去webapps下重新启动你的项目即可。然后就可以 通过https访问,完成SSL证书的配置。

【完结】

本文阐述的步骤主要想传递一些思路,避免弯路走多,其中省略了一些步骤的详细阐述是因为不是我擅长的领域,不多做描述,怕误导别人,但有了思路你至少知道如何去进行下一步操作,不至于有无路可走的感觉了。

综上为此博文全部内容,希望能帮到你,如有不对的地方,欢迎指正!


以上是关于SpringBoot项目如何部署到公网(云服务器)的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot Wiki项目部署记录

从零部署Spring boot项目到云服务器(准备工作)

react+springBoot 项目部署到腾讯云

如何将SpringBoot 项目部署到阿里云服务器(jar包)

如何将SpringBoot 项目部署到阿里云服务器(jar包)

如何将SpringBoot 项目部署到阿里云服务器(jar包)