鍍金池/ 教程/ HTML/ 部署
投票
發(fā)布和訂閱
添加用戶
簡介
會話
錯誤
開始
路由
高級的響應性
編輯帖子
響應式
動畫
部署
Notifications
允許與拒絕
評論
創(chuàng)建帖子
非規(guī)范化
高級發(fā)布機制
使用 Git 和 GitHub
更進一步
延時補償
集合
分頁
創(chuàng)建 Meteor Package
模版

部署

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

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

我們將學習幾種不同的方法去部署一個 Meteor 應用。無論你是在開發(fā) Microscope 或任何其他的 Meteor 應用,在你開發(fā)過程的任何階段,可以隨意地從它們當中挑選一個。讓我們馬上開始吧!

引入附錄

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

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

部署在 Meteor

首先最簡單的是部署到 Meteor 的子域名上(例如: http://myapp.meteor.com ),這是我們首先要去學習的。在項目早期,這對于展示你的應用和快速設置一個測試服務器都很有用途。

而部署在 Meteor 是非常簡單的。打開終端,定位到你 Meteor 應用的目錄,并輸入:

meteor deploy myapp.meteor.com

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

如果順利地部署成功了,幾秒鐘后你就能夠在 http://myapp.meteor.com 上訪問到你的應用了。

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

部署在 Modulus

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

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

Meteor Up

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

Meteor Up (簡稱 mup )是另一個通過命令行的操作去幫助你解決安裝和部署問題。所以讓我們看看如何通過 Meteor Up 來部署 Microscope。

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

無論選擇哪種服務,你應該要解決這三樣東西:你服務器的 IP 地址,登錄賬號(通常是 root 或者 ubuntu )和登錄密碼。將它們安全地保存起來,我們很快就會用到。

Meteor Up 的初始化

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

npm install -g mup

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

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

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

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

通過 Dropbox 分享

為了確保你和你的團隊都使用相同的部署設置,一個很好的方法就是把你的 Meteor Up 配置文件夾放在你的 Dropbox 上,或者任何類似的服務上。

Meteor Up 的配置

當初始化一個新項目的時候,Meteor Up 會為了創(chuàng)建兩個文件: mup.jsonsettings.json

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

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

{
  //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"
  }
}

讓我們了解一下這些設置。

服務器身份驗證

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

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

MongoDB 配置

下一步是為你的應用配置 MongoDB 數(shù)據(jù)庫。我們建議使用 Compose 或者其他提供云端 MongoDB 的提供商,因為它們提供專業(yè)支持和更好的管理工具。

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

Meteor 應用路徑

因為 Meteor Up 的配置作用在不同的目錄,我們需要通過 app 屬性去把 Meteor Up 指回到應用。只需要設置你完整的本地路徑,當你位于你的應用目錄里面的時候,你可以使用 pwd 命令去獲取它。

環(huán)境變量

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

設置和部署

在我們可以部署之前,我們還需要設置服務器去為 Meteor 應用托管。Meteor Up 把這個復雜的過程封裝在一個簡單的命令上!

mup setup

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

mup deploy

這將會打包我們的 Meteor 應用并部署到我們剛剛設置好的服務器上。

顯示日志信息

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

mup logs -f

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

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

上一篇:投票下一篇:評論