上一篇《打造完美接口文档 - 应用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
// 输入之前创建好密码
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
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服务。
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 + maven的方式做到快速更新应用并发布,对于前期边调试边发布的阶段,这是最好的方式。有了git,基本不用ftp来传应用文件了。
apt-get install git
git --version
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的部署环境基本完成
阿里云对端口的安全防护做到很好,如果我们要开放某个端口,需要配置,比如http的80端口,如果不设置,网站是访问不了的。小拉以80端口为例,进入阿里云控制台,选择『网络和安全』->安全组 点击 配置规则
添加安全组规则
以下列格式添加
ftp方式
sftp root@60.205.206.196
put path/xxx.jar
上传40M的jar,用了1分钟,还是挺慢的
通过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 jar包已经就绪(ftp上传的springboot.jar或是在服务器上通过maven现构建的jar包),运行只要通过终端执行
java -jar xxx.jar
去公网验证下,浏览器访问云服务器的公网ip
上边方式通过终端运行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接口文档又完美一步。