您的位置:首页 > 编程语言 > Java开发

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

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

阿里云服务器的准备

阿里云服务器的购买

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



创建阿里云服务器的实例

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



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



登录阿里云服务器

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



方式二、应用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 root@60.205.206.196


输入密码

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>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</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[/code] 
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接口文档又完美一步。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  阿里云 api springboot