1. 程式人生 > >部署專案至阿里雲

部署專案至阿里雲

專案結構

服務端系統:centos7 專案框架:spring boot2.0 資料庫:mysql8.0 快取: redis4.0 開發環境 macos

準備

  1. 一個阿里雲的賬號,並且購買了一個或多個服務例項。
  2. 準備專案部署環境
  3. 將專案打成jar包
  4. 部署專案並執行

準備阿里雲賬號

  • 進入雲伺服器ECS管理臺,點選執行,啟動雲伺服器。點選祕鑰匙對->建立祕鑰對->輸入祕鑰對名稱,選擇自動新建祕鑰對->在祕鑰對列表頁點選繫結例項繫結即可,阿里雲會自動下載好***.pem祕鑰對。
  • 點選安全組->選擇新增安全組規則->按照規則配置即可。需要注意的是為了安全性,阿里雲是隻會開放白名單的介面的,一般的像3306這樣的埠,在開發階段可能需要開放,所以就需要我們進行設定。

準備專案部署環境

可以通過docker部署,很方便,可以避免了差異性,但是這裡還是說一下普遍的部署方式。

ssh命令如下。公網IP 在例項列表就可以找到。

ssh [email protected]*.*.*.*   完了再輸入密碼

ctrl+d 退出
	啟動 mysql服務
	systemctl start mysqld
  • 安裝完了,應該可以美滋滋的遠端登入了把,這個時候大家注意,坑來了:在伺服器上登入可以登入,而通過遠端訪問就會卡死。然後你會發現:哦,可能是3306埠未開放吧,然後你需要telnet一下本地3306埠,注意:centos7本地是沒有安裝telnet的,需要通過yum安裝。安裝後發現通過 telnet 127.0.0.1 3306 發現,哦,確實沒有開放,咋回事呢,原來是防火牆給攔截了,centos7自帶firewall防火牆,需要換成iptables。這裡提供兩個檢視埠命令
	lsof -i:80   檢視埠是否開放
	netstat -tlanp | grep 3306    檢視埠是否被監聽
  iptables -L -n 

好了一頓操作,我們終於可以遠端登入mysql了。

啟動 service redis_6379 start
停止 redis-cli SHUTDOWN   (不建議直接通過service redis stop停止,因為redis會自動持久化備份,如果直接停止可能會造成備份失效)

將專案打成jar包

mvn install -Dmaven.test.skip=true

需要注意的是pom.xml需要在packaging中宣告為jar,而且目前我嘗試的帶有子moudle的專案打包會失敗,這個我過幾天會總結。 另外需要注意的是如果你的mysql是8.0以上的版本,mysql配置中需如下

spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driverClassName: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/bootdo?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=UTC

##部署專案並執行 通過如下命令將專案拷貝到伺服器

第一個引數為源,第二個引數為目標地址
scp ./bootdo-2.0.0.jar [email protected]*.*.*.*:/root/

好了,準備這麼多,終於可以部署了

java -jar  ***.jar  &
在檢視程式執行成功後,執行下面
ctrl+z   退出至控制檯,執行bg
exit  退出

注意:別直接關閉ssh視窗 執行ctrl+d退出ssh,再關視窗