0、业务场景
当我们项目写好了需要放在服务器上进行测试或者发布的时候,我们需要用到云服务器,把项目部署在云服务器上进行测试。这篇文章记录的是我如何把自己的项目部署在Centos7.4服务器上,包括搭建服务器环境。
文章主要有以下几个步骤:云服务器环境搭建,防火墙端口开放,java项目打包,如何上传到服务器,如何运行和查看日志。
我是一个java开发者,我的文章都是工作中用到的解决方案,很多都是直接粘贴的源码,如果觉得有用可以收藏一下,希望有一天能用的上,我就很开心了。如果喜欢这里文章可以关注我,我会继续发的,谢谢你。
1、云服务器环境搭建
我们买好的服务器一般都是linux系统的,如果是公司的云服务器一般也是linux,作为服务器很少有windows系统,因为linux具有更高的安全性,更稳定!此处我是基于centos7.4安装java环境。以及分享了如何一键安装常规网站需要的环境。
1.1 Java环境安装
jdk的下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
1.2卸载JDK
centos自带的有openjdk,如果不想使用可以卸载掉,命令如下:
yum -y remove java-1.7.0-openjdk*
yum -y remove java-1.8.0-openjdk*
1.3安装jdk
方法一:利用yum源来安装jdk(此方法不需要配置环境变量)
查看yum库中的java安装包 :
yum -y list java*
安装需要的jdk版本的所有java程序:
yum -y install java-1.8.0-openjdk*
(安装完之后,默认的安装目录是在: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64)
方法二:用rpm安装jdk,使用Xftp将下载好的jdk-8u152-linux-x64.rpm上传到Centos上去
使用rpm命令安装:
rpm -ivh jdk-8u152-linux-x64.rpm
jdk下载地址在上面链接里。注意下载linux64的。
到这里java环境就安装好了,不涉及到数据库的安装,如果想使用php和nginx等软件,推荐去百度查一下wdcp,宝塔等,都很不错。
2、防火墙端口开放
防火墙端口开放,关闭,查看等,我吧我常用的命令都列出来了,大家直接复制粘贴使用。需要注意的是:服务器上端口开放了,但是在阿里云,或者百度云,腾讯云那边,他们依旧是拦截的,相当于他们那边还有一道防火墙。我们需要在阿里云后台添加对应的安全组规则,相当于放开第二道防火墙。只有2到防火墙都开了,才可以的。
1、firewalld的基本使用
启动: systemctl start firewalld
关闭: systemctl stop firewalld
查看状态: systemctl status firewalld
开机禁用 : systemctl disable firewalld
开机启用 : systemctl enable firewalld
2.systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。
启动一个服务:systemctl start firewalld.service
关闭一个服务:systemctl stop firewalld.service
重启一个服务:systemctl restart firewalld.service
显示一个服务的状态:systemctl status firewalld.service
在开机时启用一个服务:systemctl enable firewalld.service
在开机时禁用一个服务:systemctl disable firewalld.service
查看服务是否开机启动:systemctl is-enabled firewalld.service
查看已启动的服务列表:systemctl list-unit-files|grep enabled
查看启动失败的服务列表:systemctl --failed
3.配置firewalld-cmd
查看版本: firewall-cmd --version
查看帮助: firewall-cmd --help
显示状态: firewall-cmd --state
查看所有打开的端口: firewall-cmd --zone=public --list-ports
更新防火墙规则: firewall-cmd --reload
查看区域信息: firewall-cmd --get-active-zones
查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0
拒绝所有包:firewall-cmd --panic-on
取消拒绝状态: firewall-cmd --panic-off
查看是否拒绝: firewall-cmd --query-panic
那怎么开启一个端口呢
添加
firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent永久生效,没有此参数重启后失效)
重新载入
firewall-cmd --reload
查看
firewall-cmd --zone= public --query-port=80/tcp
删除
firewall-cmd --zone= public --remove-port=80/tcp --permanent
3、java项目打包和上传到服务器
如何把我们的项目打包呢?如果不是springboot项目,还需要在服务器上下载安装tomcat的,把你的web项目打包成war包,上传到tomcat的webapps里面,然后启动tomcat.这种项目我已经很久没有写过了,此处不再赘述。我主要用的都是SpringBoot项目,以下演示如何把springboot项目打包,上传到服务器。
打包命令:
mvn clean package
连接服务器我使用的软件是Xshell5和xftp5,可以在Xshell5界面直接启动xftp5来上传文件。如下图,点击一下直接启动xftp就可以上传文件了。
链接成功如下图:左侧的本机的文件,右侧是服务器的,可以直接把本地的拖到右侧,即可上传了。
4、如何把项目跑起来和查看日志
因为我们springboot项目打包出来是jar包,直接可以使用java -jar xxx.jar这个命令来运行的,没有问题。 但是当我们ssh窗口关闭了,项目也就关闭了,因为只在我们这个窗口运行,并非是在系统后台运行。我们需要吧项目运行在系统后台。命令如下:
nohup >log.log java -jar xxx.jar &
其中log.log是我强制把项目的日志信息输出到log.log这个文件夹的,如果你的项目也配置了日志输出,同样有效。
这样的话,及时我们这个ssh窗口关闭,项目依旧会在系统运行,此处未配置到开启自动运行。
查看日志,命令如下:
cat log.log
当然,你也可以用xftp把这个日志文件下载到本地查看。都可以的。
好了,到这里就结束了,这都是我自己实际工作中用到了,切实可用,如果你喜欢这样的干货文章,关注我吧,我会继续发的。