建立 Parse 服務
目錄
概述說明
Parse Service 在常見的配置上,包含「資料庫服務」用以存放資料,「Parse 伺服器」作為服務端口,「Parse Dashboard」提供簡單的管理之用。在這次的範例中,將會演示建立以 Google Cloud Platform(下稱 GCP)的 Compute Engine「虛擬機」為基礎的方式,逐步架設 Parse 所需的「Parse 伺服器」、「Parse Dashboard」
建立虛擬機
在 GCP 的 Compute Engine 控制介面中,點擊「建立」,新增 VM Instance
設定 Instance 相關資訊
名稱:自行命名
區域:與資料庫同網域(因範例中資料庫伺服器網路預設開放 internal 連線)
機器類型:依需求決定,範例選用微型機器
開機磁碟:依需求決定,範例使用預設磁碟大小
作業系統:範例選用 Ubuntu 14.04 LTS
防火牆設定,開啟允許 HTTP & HTTPS
點開「管理、磁碟、網路、SSH 金鑰」,切換到「網路」頁籤,在「外部 IP」的選項中,點擊「建立 IP 位址」,填入名稱進行預約,讓此主機在未來即使重新啟動,都能綁定至此外部 IP
等待建立完成後,便完成了一台虛擬機的啟用。爾後可以在此畫面,管理所有建立的虛擬機。也可透過後方的按鈕,直接透過 SSH 登入到每一台虛擬機
申請與設定網域對應
由於安全性的考量,Parse 服務端口建議使用 SSL 連線,因此,必須先申請所想要使用的網域,並設定其 DNS Resource Record。市售的網域註冊服務很多,除了較為特別的網域名稱會被抬高價格之外,大部分的費用都差異不大(按我查看 Google Domains 價格),建議可以挑選大型服務來購買,比如:Google Domains, GoDaddy。以下將會演示,在 noip 申請免費域名並設定 DNS 的過程
noip 免費服務只能申請幾個限定網域的子網域,如果是要使用在正式產品,還是建議註冊一個漂亮的網域名稱吧
到官方網站,輸入網域並註冊帳號。範例中選了 ddns.net 網域,註冊了 parseServer 的子域名
完成帳號註冊與 Email 確認
到設定畫面,將網域的 IP 位址設定為剛剛建立的 Parse 虛擬機預約的外部 IP
至此,您已經完成了網域以及其 DNS 設定。接下只需靜待 DNS Resource Record 更新,便可透過這個網域來連接設定好的 IP 位址。
(選用)您可以透過本機端的終端機命令列來確認目前的 DNS 轉址,請記得將命令中的 DOMAIN_NAME 替換成您申請的網址,比如:parseServer.ddns.net
Windows
macOS
申請與設定 SSL 憑證
接下來將會演示,如何申請免費的 Let's Encrypt SSL 憑證,與設定自動更新的過程。透過 SSH 登入 Parse 虛擬機,然後開始以下的步驟
安裝 mini-httpd,用來進行網域所有權驗證
修改設定 /etc/default/mini-httpd
編輯檔案,進入編輯模式
將 START=0 修正成 START=1
編輯完成後按下[control]+[x]離開,然後輸入[y]再鍵入[enter]確定寫入到原檔案
修改設定 /etc/mini-httpd.conf
編輯檔案,進入編輯模式
將 host=localhost 修正成 host=0.0.0.0
編輯完成後按下[control]+[x]離開,然後輸入[y]再鍵入[enter]確定寫入到原檔案
啟動 mini-httpd 服務
此時可透過瀏覽器來測試 mini-httpd 是否正常運作
增加 Ubuntu 套件來源,過程中需按下[Enter]來同意繼續
安裝 Let's Encrypt 服務
輸入以下命令,來驗證網域所有權,並取得 SSL 憑證
請將 DOMAIN_NAME 替換成您申請的網域名稱,EMAIL 替換成您的聯絡用 Email
驗證過程中,會詢問你是否願意分享 Email 給 Electronic Frontier Foundation,您可以輸入[Y/N]來[同意/不同意]。接著便會進入核發程序,成功的話,便會顯示 SSL 存放的位置。至此,您已經擁有您網域 SSL 所需要使用的憑證
Let's Encrypt 核發的憑證都只有 3 個月的有效期,將會在補充說明中示範如何自動更新憑證
關閉並刪除 mini-httpd 服務
建立並設定 Parse Server 服務
安裝 Node.js
透過 npm 安裝 express-generator 的 package
透過 express generator 建立基本的 express app 到 PARSE 資料夾,然後進到該資料夾中完成 npm 安裝
PARSE 可替換任意資料夾名稱
繼續在此資料夾中,透過 npm 安裝 parse-server 需要的 package
編寫 app.js 檔案,來完成 Parse Server 服務架設在 express 上
先移除樣板 app.js 檔案
開始編輯 app.js,輸入以下指令進入編輯器
將以下 Parse Server 設定樣板貼入,將伺服器掛載在 express 之下
將 databaseURI 中的 PARSE_DB_USER, PARSE_DB_PASSWORD, 0.0.0.0, PARSE_DB,改成您 Parse 資料庫的「帳號」、「密碼」、「資料庫內部 IP」、「資料庫名稱」
將 privateKey, certificate 改成申請的憑證位置
編輯結束後按下[control]+[x]離開,然後輸入[y]再鍵入[enter]確定寫入到 app.js
透過 npm 安裝常駐服務所需套件套件
將此 express 封裝成 service
請將 PARSE 改成您希望的 service 名稱
至此,您已經完成了 Parse Server 的伺服器最基本設定。已經可以透過 各樣的 SDK 來連結您的 Parse Server 。此外,Parse 服務已經包裝成服務,您可以透過以下指令來簡單的控制 Parse 服務
啟動服務 - "sudo service PARSE start"
停止服務 - "sudo service PARSE stop"
檢視服務狀態 - "sudo service PARSE status"
重新啟動服務- -"sudo service PARSE restart"
建立並設定 Parse Dashboard 服務
如果您有多個 Application Server,您可以透過以上的方法建立一台獨立的伺服器來運行 Parse Dashboard 服務。如果您只有建立一台 Application Server,您可以直接將 dashboard 建立在同一台伺服器中,甚至也可以直接掛載在 Parse Server 的 Express 之中
透過 npm 安裝 Parse Dashboard 所需套件套件
在 PARSE 資料夾中開始編輯 app.js,輸入以下指令進入編輯器
在原本掛載 Parse 服務的 Express 後,再掛載一個 Dashboard 到 /dashboard 端口
編輯結束後按下[control]+[x]離開,然後輸入[y]再鍵入[enter]確定寫入到 app.js
重啟 PARSE 服務
補充說明
自動更新 Let's Encrypt SSL 憑證,運用伺服器 cron 系統,在每週日淩晨三點進行憑證更新以及重新啟動 Parse 服務
請注意伺服器時區,預設是 Etc/UTC 時間
Last updated