注:本文的云服务器,等价于主机,只要你安装的是Centos7,这个方法就能用。
本文相当于一份简介,告诉读者部署项目大概需要哪些资源、哪些步骤和流程。
这些资源的获取、服务器之间的交流、或者某个看似简单的步骤,其中都大有讲头,一篇文章写完,其实是对读者的不负责,因此,我觉得分篇来写,希望读者看到超链接不要反感。
一、前言
这部分是我个人的经验教训。千万不要购买云服务器,价格昂贵,性价比很低,更具性价比的方式是购买公网IP地址,不仅带宽普遍更大,个人电脑的性能也较好。
由于题主折腾项目,突然想将项目部署到公网上,供众人访问。
于是查阅资料,好巧不巧,遇到的几篇文章都使用了云服务器。
题主本人就花一千多大洋,买了一台云服务器一年使用权,1核cpu、1G的内存、1Mbits的带宽,后面知道公网IP地址只用30元一月,甚至有免费的内网穿透服务器时,天都塌了。
在此,我奉劝各位,想要打造个人服务器,最好、最稳定的办法是将淘汰的老旧手机、电脑使用虚拟机,或者刷系统,改造成Linux,然后再购买公网IP运行。【其实不刷系统也行,Java项目毕竟不挑系统,有个JRE就OK了】
如果只是想测试一下,让别人也试试你的技术,则使用内网穿透即可,这个服务比较便宜,甚至有部分完全免费的内网穿透服务。
下一篇文章,详解项目开放给公网使用的方法。
二、环境说明【本文的所有操作基于此】
第一,操作系统
云服务器的操作系统:Centos7【Linux发行版】
第二,环境和数据资源
- 必备:JRE
- 必备:MySQL数据库【或其它数据库】
- 必备:Jar包【或War包】
- 可选:如果你使用War包,那么就得安装:
- Tomcat服务器
- JDK:Tomcat运行的环境
注:SpringBoot项目,打包成Jar包后,会自带一个Tomcat,所以不需要Tomcat,至于其它类型的项目,打包成Jar包能否运行,我就不确定了,详情查阅资料。
第三,方便开发的资源
【可选】服务器的管理软件:宝塔面板
三、Jar包的启动流程【不涉及数据库配置】
启动Jar包,有4步
首先,是使用Maven工具,打包Jar包。
然后,在Centos7上安装JRE、MySQL
接着,将Jar上传到服务器
最后,使用命令
java -jar project_name.jar
启动服务,project_name.jar为你打包后的Jar包的路径。
第一,在IDEA中,使用Maven打包Jar包
第一步,Maven可以把项目打包成Jar或者War包,所以,我们需要在pom文件中,指定打包方式。
默认的打包方式是Jar包,如果有下面这一行,删除
<packaging>war</packaging>
第二步,编译项目,直接点击“run”即可,项目启动后再关闭。
第三步,使用Maven打包,由于IDEA版本差异,每个人的界面可能会有所区别,具体查阅资料可得
如图:
点击package后,会自动打包,然后出现打包文件的位置。【一般情况下,都会打包到当前项目的target目录下】
例如:
[INFO] Building jar: D:\project\test\target\test.jar
根据提示,来到对应目录下,可以看到一个jar文件。
第二,在Centos7上安装JRE、MySQL
在Linux操作系统上安装软件,最麻烦的一步依旧是配置系统变量。
如果使用了宝塔面板管理资源,那么这一步就非常方便,下面的链接我介绍用宝塔面板管理资源的方法。
题主本人有点特殊,由于云服务器内存较小,无法启动MySQL8,因此我在自己电脑上启动MySQL,并使用内网穿透技术,将云服务器项目数据库指向自己电脑,操作更加麻烦,也会在下面的链接进行分享,为大家介绍排错的方法。
下面的链接展示如何安装、配置JDK、MySQL
第三,上传jar到服务器
如果是本地虚拟机,可以通过拖拽的方式放入,再不济,也可以通过查看虚拟机硬盘地址,将资源移到硬盘中。
如果是云服务器,可以使用宝塔面板,在宝塔面板的“文件管理”中,上传文件资源。
如果不使用宝塔面板,则可以FTP上传到云服务器,也非常方便,我在下面的链接详细介绍。
第四,使用命令启动jar包
命令
java -jar project_name.jar
将project_name.jar,替换为你的jar包路径。比如:
/usr/myproject/project_name.jar
弄完这些,项目就成功启动了。
接下来,需要在application.yml或者application.properties文件中,配置服务启动的端口。
以及:MySQL的URL、账号、密码和连接依赖,具体不说明。
四、War包的启动流程
war包由于没有内置的Servlet容器,需要自己下载一个Tomcat服务器,来挂载War包,经过上面的配置方法,想必大家也学会了配置Tomcat服务器,在此不介绍。
War包的部署,分为
首先,在IDEA中使用Maven打包成War包。
接着,安装Tomcat、MySQL、JDK
然后,上传War包到服务器。
最后,将War包放在Tomcat的webapps目录下,重启Tomcat服务器,它会自动解压缩War包资源并启动项目。
第一,Maven打包War
在pom文件中,添加以下语句:
<packaging>war</packaging>
此语句优先级较高,放在peoject标签中即可。
第二、第三不再介绍
第四,访问项目的方法
放在webapps的方法不介绍。
由于tomcat可能会同时启动多个服务,为了避免同一资源冲突,tomcat对外提供的服务,会带着一个前缀。
假设你的war包名字叫做:
test.war
Controller中定义了几个方法,它们的访问为:
/user/login
/listdata
那么,在访问时,需要在方法前加上war包的前缀,如本例,则为:
/test/user/login
/test/listdata
至此结束
五、结语
我是蚊子码农,如有补充或者疑问,欢迎在评论区留言。个人的知识体系可能没有那么完善,希望各位多多指正,谢谢大家。