部署專案至阿里雲
阿新 • • 發佈:2018-12-17
專案結構
服務端系統:centos7 專案框架:spring boot2.0 資料庫:mysql8.0 快取: redis4.0 開發環境 macos
準備
- 一個阿里雲的賬號,並且購買了一個或多個服務例項。
- 準備專案部署環境
- 將專案打成jar包
- 部署專案並執行
準備阿里雲賬號
- 進入雲伺服器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,再關視窗