打造完美接口文档 - 发布springboot应用到阿里云服务器

上一篇《打造完美接口文档 - 应用springboot+swagger2编写restFull接口文档》,解决了api文档的诸多问题,但是当开发团队不在同一个局域网时,查看接口文档就有些问题了,那么只有把项目发布到公网服务器了,小拉这里分享应用阿里云服务器部署springboot应用的过程。

阿里云服务器的准备

阿里云服务器的购买

阿里云服务器的购买过程,这里就不多说了,小拉这次用的是新人6个月的优惠活动,9元钱体验6个月,这对于学习足够用了。

创建阿里云服务器的实例

登录后,进入控制台,选择云服务器ecs->实例->创建实例, 小拉这次创建的是ubuntu16 64位,在创建过程中,设置root帐号密码,一定记住

创建好之后,如下图,注意下面的公网ip, 我们用ssh登录、ftp上传文件和网站的访问都是通过这个公网ip

登录阿里云服务器

  1. 方式一、应用阿里云的内嵌终端(速度较慢,不推荐)

  2. 方式二、应用Shell通过SSH登录,mac下shell(windows使用secureCRT)

小拉在macOS下应用iTerm2通过SSH登录,

//ssh 用户名@公网IP
ssh root@60.205.206.196
// 输入之前创建好密码

springboot运行环境搭建

安装JDK并配置环境变量

1.打开JDK官网 www.oracle.com

2.找面最新对应的JDK版本,复制下载链接

3.在终端执行下载命令

sudo wget http://download.oracle.com/otn-pub/java/jdk/8u141-b15/336fa29ff2bb4ef291e347e091f7f4a7/jdk-8u141-linux-x64.tar.gz

下载完成

4.解压

将下载好的压缩包解压到指定目录,小拉放在了/root/sdk
/root/sdk

5.配置JDK环境变量

5.1 添加系统环境变量

vi /etc/environment 
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:$JAVA_HOME/bin"
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export JAVA_HOME=/root/sdk/jdk1.8.0_141

不要忘了让配置生效,终端执行

/etc/environment

5.2 添加用户环境变量

vi /etc/profile 

添加如下内容

export JAVA_HOME=/root/sdk/jdk1.8.0_141
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

不要忘了让配置生效,终端执行
/etc/profile

6.验证jdk是否安装成功

java -version

安装MySQL

1.安装之前更新一下软件库
sudo apt-get update

2.安装mysql服务器

apt-get install mysql 作为发布有mysql服务器已经够了
也可以安装上client
apt-get install mysql-client

3.设置密码
安装过程中会提示设置密码什么的,注意设置了不要忘了,安装完成之后可以使用如下命令来检查是否安装成功:

4.验证mysql是否安装成功
sudo netstat -tap | grep mysql

通过上述命令检查之后,如果看到有mysql 的socket处于 listen 状态则表示安装成功。

5.登录mysql
mysql -u root -p

配置Ftp服务器

可以通过ftp的方式将应用文件上传到阿里云服务器,首先需要在阿里云上安装开启ftp服务。

1.安装sftp服务

 apt-get install vsftpd -y
 apt-get install ftp

2.修改配置文件

vi /etc/vsftpd/vsftpd.conf
// 修改如下内容
local_enable=YES 
write_enable=YES 
chroot_local_user=YES 

3.ftp服务器的控制命令

service vsftpd start    启动
service vsftpd stop     关闭
service vsftpd restart  重启

3.上传文件
注意,阿里云服务器上的ftp,应用sftp协议

sftp [email protected]

输入密码

put + 本地文件 上传成功

安装git

git 确实是个好东西,git + maven的方式做到快速更新应用并发布,对于前期边调试边发布的阶段,这是最好的方式。有了git,基本不用ftp来传应用文件了。

apt-get install git
git --version

安装Maven

maven是个好东西,构建应用少不了它。由于在本地构建的springboot WEB应用,是把tomcat也集成进去了,这就使jar包比较大,再通过ftp上传,浪费时间。我们可以在阿里云服务上应用maven构建应用,代码通过git拉取,节省了大量的文件上传时间。

1.下载maven并解压

http://maven.apache.org/download.cgi

2.配置变量

vi /etc/profile

在最后添加,然后别忘了source /etc/profile

export M2_HOME=/root/sdk/apache-maven-3.5.0
export M2=$M2_HOME/bin
export PATH=$M2:$PATH 

3.修改maven国内镜像
为了maven构建速度,添加国内的镜像服务器

/root/sdk/apache-maven-3.5.0/conf/settings.xml文件,复制到~/.m2目录下

cp /root/sdk/apache-maven-3.5.0/conf/settings.xml ~/.m2

4.将下列内容添加到mirrors节点下

<mirror>
      <id>alimavenid>
      <name>aliyun mavenname>
      <url>http://maven.aliyun.com/nexus/content/groups/public/url>
      <mirrorOf>centralmirrorOf>
mirror>

5.maven安装成功验证

mvn -version 显示如下信息,则安装配置成功

springboot应用部署发布

到此,springboot的部署环境基本完成

阿里云端口安全配置

阿里云对端口的安全防护做到很好,如果我们要开放某个端口,需要配置,比如http的80端口,如果不设置,网站是访问不了的。小拉以80端口为例,进入阿里云控制台,选择『网络和安全』->安全组 点击 配置规则

添加安全组规则

以下列格式添加

应用jar包上传

ftp方式

sftp root@60.205.206.196
put path/xxx.jar

上传40M的jar,用了1分钟,还是挺慢的

通过maven方式打包

通过ftp方式还是比较慢的,如果频繁部署还是采用git + maven方式比较快

1.clone代码

git clone https://git.coding.net/ruglcc/api4bangbang.git

2.maven 下载信赖包

mvn install 第一次构建时,会下载一些jar包,请等待,这些JAR包放在~.m2/repository目录下

通过 du -hc repository/ 查看总大小

3.maven 构建
切换到代码的目录 (有maven 配置文件pom.xml同级)运行:
mvn install 如果程序没有错误,则构建成功

运行springboot应用

springboot jar包已经就绪(ftp上传的springboot.jar或是在服务器上通过maven现构建的jar包),运行只要通过终端执行

java -jar xxx.jar

去公网验证下,浏览器访问云服务器的公网ip

让springboot应用在后台运行

上边方式通过终端运行jar,当终端关闭对应的java进程也有可能会被关闭,小拉通过nohup命令让jar包在后台运行,不会随shell的关闭而关闭了

1.在springboot对应jar包目录下,新建一个start.sh文件

vim start.sh 添加 java -jar xx.jar
修改该文件的可执行权限 chmod 777 start.sh

通过nohup ./start.sh & 运行

2.关闭这个应用

查看其对应的进程号
netstat -anp | grep 80

关闭sid的端口,即关闭应用

kill sid

绑定域名

可以给自己的API文档服务器绑定一个自己申请好的域名,国内域名需要备案,还是比较麻烦和费时的,小拉这里就不多说了,在阿里云控制添加解析,即可绑定域名

总结

小拉将springboot+swagger应用成功地部署到了阿里云,方便跨区域人员协同开发,restFull接口文档又完美一步。

你可能感兴趣的:(springboot)