開了一臺主機以後可以做什麼呢?第一件事就是要把自己寫的服務放上去讓別人使用吧!這篇文章會介紹兩種常見的部屬服務的方法。

如果你還沒有主機,建議可以架一台 DigitalOcean,並參閱 剛架設雲端 VPS 主機後該做的三件事

這篇文章中,我們會嘗試部署 API 實作(二):以 Koa 實作 RESTful API 的範例,如果你沒有看過前面的文章,建議要先把 Node.js 安裝起來。

使用 git 來部署服務

通常工程師都會把自己的作品放到 GitHub 上吧!不管是 public 還是 private 的,應該都可以這樣使用。如果你已經有一個 Node.js 服務,可以換成你的網址:

cd ~
git clone https://github.com/noobtw/koa-api-example

試著切換到這個資料夾,並執行看看:

cd koa-api-example
npm install
node server.js

接著就可以使用 Postman 來測試看看這支 API 能不能正常使用囉!

使用 scp 來部署服務

另外,有些人可能沒有將專案推到 GitHub 的習慣,這時候從本機使用 scp 來部署就是一個好方法。SCP 是 Secure Copy 的縮寫,使用 SSH Tunnel 來傳遞檔案,所以如果你的 SSH 可以用,你的 SCP 就可以用。

這邊假設你的本機已經有一個專案叫 koa-api-example,而且你可以正常的用 ssh 指令連線到主機。首先請切換(cd)到 koa-api-example 外層的資料夾,例如如果你的專案在 ~/koa-api-example 的話,請切換到 ~

接著使用這個指令把你的專案推上去:

# scp -r [本機資料夾] [遠端帳號]@[遠端IP]:[遠端路徑]
scp -r koa-api-example noob@209.97.165.221:~/koa-api-example

接著一樣 ssh 到你的主機,試試看能不能執行這個專案:

cd ~/koa-api-example
npm install
node server

平常我大概會用這兩個方法來部署服務,因為通常大部分的機器都會裝 gitssh。如果習慣用 ftp 的朋友,也是可以嘗試用 FileZilla 來移動,只是要特別設定 FTP 相對麻煩,甚至是可以使用 sftp 指令或 FileZilla+SFTP 來部署。但是指令才一行,不學一下嗎?

目前的狀況是你還要手動執行 node server.js 才會打開服務,而且關掉 SSH 視窗以後就不見了。下一篇文章會介紹怎麼讓服務保持運作,甚至是遇到錯誤的時候重新啟動、開機自啟動。

本篇文章同步發表在 iT邦幫忙