Meteor 部署

2022-06-30 13:54 更新

部署

有些人喜歡不被打擾地工作,直到項(xiàng)目足夠完美才去發(fā)布,而有些人則迫不及待的要向大家展示自己的項(xiàng)目。

如果你是第一種人,現(xiàn)在寧愿在本地開(kāi)發(fā),那么可以果斷跳過(guò)這一章。相反,如果你更愿意花時(shí)間去學(xué)習(xí)如何把 Meteor 應(yīng)用部署到線(xiàn)上,我們下面為你提供一些方法。

我們將學(xué)習(xí)幾種不同的方法去部署一個(gè) Meteor 應(yīng)用。無(wú)論你是在開(kāi)發(fā) Microscope 或任何其他的 Meteor 應(yīng)用,在你開(kāi)發(fā)過(guò)程的任何階段,可以隨意地從它們當(dāng)中挑選一個(gè)。讓我們馬上開(kāi)始吧!

引入附錄

這是一個(gè)附錄章節(jié)。 不同于其他書(shū)的是,本書(shū)的附錄會(huì)讓我們深入去了解更多關(guān)于 Meteor 的知識(shí)。

現(xiàn)在如果你更愿意去繼續(xù)構(gòu)建 Microscope ,你現(xiàn)在可以先忽略這一章,等有空再回來(lái)看也沒(méi)問(wèn)題。

部署在 Meteor

首先最簡(jiǎn)單的是部署到 Meteor 的子域名上(例如: http://myapp.meteor.com ),這是我們首先要去學(xué)習(xí)的。在項(xiàng)目早期,這對(duì)于展示你的應(yīng)用和快速設(shè)置一個(gè)測(cè)試服務(wù)器都很有用途。

而部署在 Meteor 是非常簡(jiǎn)單的。打開(kāi)終端,定位到你 Meteor 應(yīng)用的目錄,并輸入:

meteor deploy myapp.meteor.com

當(dāng)然,你要把“myapp”替換成你想要的名稱(chēng),最好是命名一個(gè)沒(méi)有被使用的。如果你的名稱(chēng)已經(jīng)被使用,Meteor 會(huì)提示你去輸入密碼。如果發(fā)生這樣的情況,只需通過(guò) ctrl+c 來(lái)取消當(dāng)前操作,然后用另一個(gè)不同的名稱(chēng)再試一次。

如果順利地部署成功了,幾秒鐘后你就能夠在 http://myapp.meteor.com 上訪(fǎng)問(wèn)到你的應(yīng)用了。

你可以參考官方文檔去了解更多關(guān)于如何直接訪(fǎng)問(wèn)你域名下的數(shù)據(jù)庫(kù),或者為你的應(yīng)用設(shè)置一個(gè)自定義域名等等的相關(guān)信息。

部署在 Modulus

Modulus 是一個(gè)部署 Node.js 應(yīng)用 很好的選擇。這是為數(shù)不多的 PaaS(platform-as-a-service 平臺(tái)即服務(wù))的提供商,并且已經(jīng)正式支持 Meteor ,已經(jīng)有不少人在它上面去搭建 Meteor 應(yīng)用了。

你可以通過(guò)閱讀他們的部署 Meteor 應(yīng)用指南去了解更多關(guān)于 Modulus 的信息。

Meteor Up

雖然每天都有新的云端解決方案出來(lái),但是它們通常都有自己的一些問(wèn)題和限制。目前,把 Meteor 應(yīng)用部署在自己的服務(wù)器才是一個(gè)最好的方式。然而麻煩的是,部署到自己的服務(wù)器并不是那么簡(jiǎn)單,尤其如果你注重產(chǎn)品部署上去的質(zhì)量的話(huà)。

Meteor Up (簡(jiǎn)稱(chēng) mup )是另一個(gè)通過(guò)命令行的操作去幫助你解決安裝和部署問(wèn)題。所以讓我們看看如何通過(guò) Meteor Up 來(lái)部署 Microscope。

在此之前,我們需要一個(gè)服務(wù)器來(lái)發(fā)布。我們建議使用 Digital Ocean(每月最低5美元),或者 AWS(它為小型實(shí)例提供免費(fèi),如果你只是想試玩玩 Meteor Up 就已經(jīng)足夠了)。

無(wú)論選擇哪種服務(wù),你應(yīng)該要解決這三樣?xùn)|西:你服務(wù)器的 IP 地址,登錄賬號(hào)(通常是 root 或者 ubuntu )和登錄密碼。將它們安全地保存起來(lái),我們很快就會(huì)用到。

Meteor Up 的初始化

首先,我們需要通過(guò) npm 去安裝 Meteor Up:

npm install -g mup

然后我們將創(chuàng)建一個(gè)單獨(dú)的目錄,為我們的 Meteor Up 提供一個(gè)特定的部署環(huán)境。我們使用單獨(dú)的目錄出于兩個(gè)原因:第一,這可以很好的避免里面包含任何你 Git 存儲(chǔ)庫(kù)的隱藏文件,尤其如果你是在公共代碼庫(kù)去操作。

第二,通過(guò)使用多個(gè)單獨(dú)的目錄,我們能夠并行地進(jìn)行多個(gè) Meteor Up 管理和配置。這將會(huì)用在實(shí)際產(chǎn)品的部署以及分段實(shí)例的部署。

所以我們來(lái)創(chuàng)建這個(gè)新目錄,并使用它來(lái)初始化一個(gè)新的 Meteor Up 項(xiàng)目:

mkdir ~/microscope-deploy
cd ~/microscope-deploy
mup init

通過(guò) Dropbox 分享

為了確保你和你的團(tuán)隊(duì)都使用相同的部署設(shè)置,一個(gè)很好的方法就是把你的 Meteor Up 配置文件夾放在你的 Dropbox 上,或者任何類(lèi)似的服務(wù)上。

Meteor Up 的配置

當(dāng)初始化一個(gè)新項(xiàng)目的時(shí)候,Meteor Up 會(huì)為了創(chuàng)建兩個(gè)文件: mup.jsonsettings.json 。

mup.json 會(huì)保存所有我們部署的相關(guān)設(shè)置,而 settings.json 會(huì)保存所有應(yīng)用的相關(guān)設(shè)置(OAuth token、Analytics token,等等)。

下一步就是去配置你的 mup.json 文件。 mup.json 會(huì)默認(rèn)在執(zhí)行 mup init 的時(shí)候生成,而你要做的就是把空白的填上:

{
  //server authentication info
  "servers": [{
    "host": "hostname",
    "username": "root",
    "password": "password"
    //or pem file (ssh based authentication)
    //"pem": "~/.ssh/id_rsa"
  }],

  //install MongoDB in the server
  "setupMongo": true,

  //location of app (local directory)
  "app": "/path/to/the/app",

  //configure environmental
  "env": {
    "ROOT_URL": "http://supersite.com"
  }
}

讓我們了解一下這些設(shè)置。

服務(wù)器身份驗(yàn)證

你會(huì)注意到 Meteor Up 提供了基于密碼和基于私鑰(PEM)的身份驗(yàn)證,所以它幾乎可以用于任何的云提供商。

重要提示:如果你選擇使用基于密碼的身份驗(yàn)證,確保你在這之前已經(jīng)安裝了 sshpass使用指南)。

MongoDB 配置

下一步是為你的應(yīng)用配置 MongoDB 數(shù)據(jù)庫(kù)。我們建議使用 Compose 或者其他提供云端 MongoDB 的提供商,因?yàn)樗鼈兲峁?zhuān)業(yè)支持和更好的管理工具。

如果你決定使用 Compose ,把 setupMongo 設(shè)置為 false ,并添加 MONGO_URL 環(huán)境變量到 mup.json 中的 env 模塊。如果你決定通過(guò) Meteor Up 去訪(fǎng)問(wèn) MongoDB ,只需要設(shè)置 setupMongotrue ,然后 Meteor Up 會(huì)完成剩下的工作。

Meteor 應(yīng)用路徑

因?yàn)?Meteor Up 的配置作用在不同的目錄,我們需要通過(guò) app 屬性去把 Meteor Up 指回到應(yīng)用。只需要設(shè)置你完整的本地路徑,當(dāng)你位于你的應(yīng)用目錄里面的時(shí)候,你可以使用 pwd 命令去獲取它。

環(huán)境變量

你可以在 env 模塊中指定應(yīng)用的所有環(huán)境變量(比如: ROOT_URLMAIL_URL , MONGO_URL 等等)

設(shè)置和部署

在我們可以部署之前,我們還需要設(shè)置服務(wù)器去為 Meteor 應(yīng)用托管。Meteor Up 把這個(gè)復(fù)雜的過(guò)程封裝在一個(gè)簡(jiǎn)單的命令上!

mup setup

可能需要幾分鐘,這取決于服務(wù)器的性能和網(wǎng)絡(luò)連接速度。設(shè)置成功后,終于可以去部署我們的應(yīng)用:

mup deploy

這將會(huì)打包我們的 Meteor 應(yīng)用并部署到我們剛剛設(shè)置好的服務(wù)器上。

顯示日志信息

日志也是非常重要的, Meteor Up 提供非常簡(jiǎn)單的方法去處理它,通過(guò)模仿 tail -f 命令,輸入:

mup logs -f

這一小節(jié)概述了 Meteor Up 的用法。了解更多關(guān)于它的信息,我們建議看看 Meteor Up 在 GitHub 上詳細(xì)介紹

這三種部署 Meteor 應(yīng)用的方式應(yīng)該足夠滿(mǎn)足大多數(shù)的案例了。當(dāng)然,我們知道一些人會(huì)喜歡更進(jìn)一步地控制和設(shè)置他們的 Meteor 服務(wù)器。然而這將會(huì)是另一個(gè)主題,或者另一本書(shū)!

以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)