釋出springboot應用到阿里雲伺服器
上一篇《打造完美介面文件 - 應用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並配置環境變數
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並解壓
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
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介面文件又完美一步。