註冊 AWS 服務
由於許多初學者對雲託管感到困惑。我正在編寫本指南,以便使用 ubuntu os 在 aws 上設定 meteor。如果你已經執行了例項,請隨意跳過此步驟並直接在 aws 上安裝 meteor。
登入 AWS Console。選擇 EC2。轉到 EC2 儀表板。在 Create Instance 下單擊啟動例項。
在下一步中選擇 ubuntu 例項
建立金鑰對並將私鑰下載到本地計算機。
通過 shell 登入到 aws(使用私鑰,確保私鑰在你的路徑中或從包含私鑰的目錄執行命令)
ssh -i "myprivatekey.pem" ubuntu@ec2-xx-xx-xx-xx.ap-south-1.compute.amazonaws.com
ec2-xx-xx-xx-xx.ap-south-1.compute.amazonaws.com 是亞馬遜控制檯上的公共 DNS 例項名稱。ubuntu 是使用者名稱。你也可以使用公共 IP 地址。
在 AWS 例項上安裝 METEOR 的步驟(使用 mupx)
- 將私鑰從本地計算機複製到 aws 伺服器 ssh 資料夾
例子/home/ubuntu/.ssh/myprivatekey.pem
- 將打包程式更新到最新版本
sudo apt-get update
- 安裝 python 軟體屬性
sudo apt-get install python-software-properties
- 安裝 npm 和 node(也可以安裝 nvm)
sudo apt-get install npm
安裝 nvm
curl https://raw.githubusercontent.com/creationix/nvm/v0.11.1/install.sh | bash
安裝節點
nvm install 4.4.7
nvm use 4.4.7
- 安裝 aws cli
sudo apt-get install awscli
- 安裝流星
sudo npm install -g mupx
sudo npm install -g mupx-letsencrypt
(meteor 1.4 目前僅由 mpux-letsencrypt 提供)
- 通過進入專案目錄初始化 mupx 或建立新目錄(如果不存在)
mupx-letsencrypt init
如果你收到如下錯誤,那麼你可能需要建立連結
/usr/bin/env: node: No such file or directory
sudo ln -s /usr/bin/nodejs /usr/bin/node
- 安裝流星
curl https://install.meteor.com | /bin/sh
-
編輯 mup.json(確保填寫使用者名稱:ubuntu 並從步驟 1 中更正私鑰的位置)
使用 nano 檔案編輯器(在 ubuntu 上編輯檔案,也可以使用 vi)
nano mup.json
示例 mup.json
{
// Server authentication info
"servers": [
{
"host": "ec2-xx-xx-xx-xx.ap-south-1.compute.amazonaws.com",
"username": "ubuntu",
//"password": "password",
// or pem file (ssh based authentication)
"pem": "~/.ssh/myprivatekey.pem",
// Also, for non-standard ssh port use this
//"sshOptions": { "port" : 49154 },
// server specific environment variables
"env": {}
}
],
// Install MongoDB on the server. Does not destroy the local MongoDB on future setups
"setupMongo": true,
// WARNING: Node.js is required! Only skip if you already have Node.js installed on server.
"setupNode": false,
// WARNING: nodeVersion defaults to 0.10.36 if omitted. Do not use v, just the version number.
//"nodeVersion": "4.4.7",
// Install PhantomJS on the server
"setupPhantom": true,
// Show a progress bar during the upload of the bundle to the server.
// Might cause an error in some rare cases if set to true, for instance in Shippable CI
"enableUploadProgressBar": true,
// Application name (no spaces).
"appName": "my-app",
// Location of app (local directory). This can reference '~' as the users home directory.
// i.e., "app": "/Users/ubuntu/my-app",
// This is the same as the line below.
"app": "/Users/ubuntu/my-app",
// Configure environment
// ROOT_URL must be set to https://YOURDOMAIN.com when using the spiderable package & force SSL
// your NGINX proxy or Cloudflare. When using just Meteor on SSL without spiderable this is not necessary
"env": {
"PORT": 80,
"ROOT_URL": "http://myapp.com",
// only needed if mongodb is on separate server
"MONGO_URL": "mongodb://url:port/MyApp",
"MAIL_URL": "smtp://postmaster%40myapp.mailgun.org:adj87sjhd7s@smtp.mailgun.org:587/"
},
// Meteor Up checks if the app comes online just after the deployment.
// Before mup checks that, it will wait for the number of seconds configured below.
"deployCheckWaitTime": 60
}
-
設定 Meteor,包括在專案目錄中執行以下命令的 mongo。
mupx-letsencrypt setup
-
使用 mupx 部署專案
mupx-letsencrypt deploy
一些有用的命令
檢查 mupx 日誌
mupx logs -f
檢查 Docker
docker -D info
檢查網路狀態
netstat -a
檢查當前執行的程序,包括 cpu 和記憶體利用率
top
安裝 mongo 客戶端以獲取 aws 上的 mongo shell acccess
sudo apt-get install mongodb-clients
執行 mongodb 查詢
mongo projectName
一旦裡面的 mongo shell 執行
db.version()
db.users.find()
感謝 arunoda 提供精彩的工具 https://github.com/arunoda/meteor-up
感謝 mupx-letsencrypt 團隊的出色工作。 https://www.npmjs.com/package/mupx-letsencrypt