1. 安装XShell和Xftp

xshell 直接启动java服务 关闭客户端Java服务会宕机吗 xshell一关服务就停了_服务器

其中Xshell用于输入Linux命令,Xftp可以方便地进行文件传输。

2. 连接服务器

xshell 直接启动java服务 关闭客户端Java服务会宕机吗 xshell一关服务就停了_运维_02

之后输入用户名密码保存指纹秘钥就可以正常使用了。

xshell 直接启动java服务 关闭客户端Java服务会宕机吗 xshell一关服务就停了_服务器_03

服务器就是一台Linux主机,操作方式与Linux系统操作相同。剩下的部署内容,可以简单的理解为:在Linux电脑上把要用的东西安装好,然后再开放防火墙。

3.部署

后端服务器部署

存放springboot程序,也就是我们的jar包。

0.记得配置JDK环境

1. 使用Xftp上传jar包至自定义位置

xshell 直接启动java服务 关闭客户端Java服务会宕机吗 xshell一关服务就停了_服务器部署_04

2. 使用java命令 启动jar包

java -Xmx1024M -Xms1024M -jar babelcontract-1.0.0.jar

之后就可以正常启动。还有什么参数可以根据需求添加。

3. 启动成功后就会像idea中的控制台一样,打印日志信息

但是问题来了,我把Xshell关了之后,程序就停了,这玩意儿要一直启动着,咋办啊?

4. 安装screen命令

根据Linux操作系统不同,有不同的安装方式。我的服务器有AlibabaLiunx,Unbantu,Centos。

使用的命令都不同

apt-get update

apt-get install screen

#或者

yum install screen

安装成功后就可以使用了。

screen命令使用方式

screen命令会帮我们创建多个命令行窗口。我们可以通过screen命令进入不同的命令行窗口,来保证指定窗口不会被关闭,处于后台运行。

常用命令:

1. screen -ls 查看当前窗口列表

2. screen -S <窗口名称> 创建一个指定名称的窗口并进入(名称大小写敏感)

3. screen -r <窗口名称>/<窗口编号> 进入指定的窗口

4. screen -d  <窗口名称>/<窗口编号> 将指定窗口的状态设置为Detached

5. ctrl + a + d 退出指定窗口,让其在后台继续运行,同时将状态设置为Detached

我对于screen命令没有过多地研究,只是作为工具使用。

有了如上五条命令后

创建一个新窗口并运行jar文件

第一步: screen -S babelcontract 创建一个名为babelcontract的窗口

第二步: 第一步之后会自动进入该窗口,在这个窗口执行java -jar命令运行jar包

第三步: 待运行成功后,ctrl + a + d 退出窗口,就可以让babelcontract窗口正常在后台运行啦。

想要回到窗口的时候:

第一步: screen -ls 查看当前窗口列表

xshell 直接启动java服务 关闭客户端Java服务会宕机吗 xshell一关服务就停了_linux_05

 其中红框为窗口id(具体是什么我也没研究,只知道是唯一标识的,就先叫做id吧) 黄色框为名字 紫色框为窗口状态

第二步: screen -r 113945 即可返回该窗口

第三步: 执行完期望的操作后,ctrl + a + d 返回即可。

因为网络问题断连之后

因为网络问题断连之后,窗口不会处于Detached状态。这个时候可能会出现使用screen -r无法返回的问题。这个时候只需要使用screen -d 113945 让目标窗口状态变为Detached状态。再次使用screen -r即可返回。

更多screen命令可以深入学习,只要掌握这五个,是够用的。

Redis服务器部署,MongoDB服务器部署,MySQL服务器部署

我购买的服务器都是普通的Linux主机,这些需要自己配置。

Redis和MongoDB的使用方式和Linux中的操作方式一致。安装教程网上有很多。安装完即用。

但是MySQL安装比较复杂。推荐使用宝塔面板。宝塔面板中可以快速安装MySQL。比较方便。

前端服务器部署

虽然前端页面是Vue做的,通过Node.js可以直接访问,但是我嫌麻烦还是用了比较简单顺手的Tomcat。

安装Tomcat网上也有很多教程,使用也很简单。装完之后,把打包好的Vue放进去启动就好了。

设置80端口访问主页

为了好看,大家能直接输入域名访问到网站主页,需要将端口设置为80,因为http默认访问端口为80。

#加端口号不好看
http://www.bable.ink:8080

#直接输入域名访问的是80端口
http://www.babel.ink

tomcat默认端口为8080,需要去修改server.xml配置文件。

修改步骤:

第一步:找到tomcat安装目录下的conf文件夹中的server.xml文件

xshell 直接启动java服务 关闭客户端Java服务会宕机吗 xshell一关服务就停了_服务器_06

 第二步:修改端口号,将如图所示位置的参数由8080设置为80。

xshell 直接启动java服务 关闭客户端Java服务会宕机吗 xshell一关服务就停了_运维_07

 第三步:添加默认启动路径,在<Host>标签中添加如下内容

<Context path="" docBase="../webapps/Babel"  reloadable="true"/>

其中docBase即为默认路径,我的项目存放在webapps下的Babel文件中,路径设置为Babel或者../webapps/Babel都可以。只要没动web.xml中的如下配置,访问会默认打开目录下的index.html

xshell 直接启动java服务 关闭客户端Java服务会宕机吗 xshell一关服务就停了_服务器_08

如果有自己默认的主页,定义的名称不是index,那就去web.xml里面找到上图部分添加一条就好了。比如有自己定义的myIndex.html 就添加一条<welcome-file>myIndex.html</welcome-file>

4. 开放防火墙

租用的服务器需要去开启端口访问权限不然是访问不到的

xshell 直接启动java服务 关闭客户端Java服务会宕机吗 xshell一关服务就停了_运维_09

之后就可以正常访问啦。

踩坑记录

 Linux和windows不太一样,部分配置在windows上生效但是,linux上不一定生效,还有一些比较特殊的东西。

邮件发送

项目涉及到一个邮件发送的需求。使用的是SpringBoot自带的邮件发送。

邮件发送功能默认使用的是25端口,但是阿里云服务器为了安全,没有开放25端口,需要额外在application.yml中添加配置。

#Linux操作系统特殊处理 阿里云服务器没有25端口 所以设置: 使用465端口发送邮件 并启用SSL加密
spring.mail.properties.mail.smtp.socketFactory.port: 465
spring.mail.properties.mail.smtp.ssl.enable: true

数据库开放远程连接

数据库默认是不支持远程连接的,项目往往要求mysql需要单独部署在一台服务器上进行远程连接。需要手动设置。我用的是mysql5.6,使用如下命令开放即可:

grant all PRIVILEGES on <数据库名>.* to <用户名>@'<目标主机IP>'  identified by '<密码>';

#其中目标主机IP是指,想要让mysql放行哪台主机,就写哪台主机的IP。
#比如现在要88.88.88.88连接本机mysql,这个位置就写88.88.88.88

放行之后就可以正常通过JDBC远程连接了,用户名密码和IP必须都对应。