在Ubuntu上部署Meteor应用程序

本文将引导您完成将Meteor应用程序部署到运行Ubuntu 14.04的Vultr VPS的过程。它也可以在其他Linux发行版上运行(风险自负)。

一个在流星社区非常活跃的聪明人Arunoda Susiripala开发了一个名为mupx(“ Meteor Up X”的缩写)的部署工具,它使通过ssh将Meteor应用程序部署到远程服务器变得异常容易。Mupx是Mup的继承者。我们将引导您完成从头到尾的整个过程。幸运的是,Mup可以完成大部分繁重的工作,所以这将是一件轻而易举的事!

我们的第一步是安装mupx。您将在开发工作站上而不是 VPS服务器上执行此操作!确保已经安装了Node.js并运行:

$ npm install -g mupx

安装完成后,进入您的Meteor项目文件夹,例如/projects/myApp,然后运行以下命令:

$ mkdir .deploy
$ cd $_
$ mupx init

对于那些不熟悉$_语法的人,它是命令中使用的最后一个参数的快捷方式。因此,在这种情况下,将cd $_执行为cd .deploy

您将看到以下输出:

Meteor Up: Production Quality Meteor Deployments
------------------------------------------------
Configuration file : mup.json
Settings file      : settings.json

Empty Project Initialized!

初始化过程将创建两个文件mup.jsonsettings.json。我们现在将不处理后一个文件。继续开放mup.json。在撰写本文时,默认值mup.json如下所示:

{
  // Server authentication info
  "servers": [
    {
      "host": "hostname",
      "username": "root",
      "password": "password",
      // or pem file (ssh based authentication)
      // WARNING: Keys protected by a passphrase are not supported
      //"pem": "~/.ssh/id_rsa"
      // 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,

  // Application name (no spaces).
  "appName": "meteor",

  // Location of app (local directory). This can reference '~' as the users home directory.
  // i.e., "app": "~/Meteor/my-app",
  // This is the same as the line below.
  "app": "/path/to/the/app",

  // Configure environment
  // ROOT_URL must be set to your correct domain (https or http)
  "env": {
    "PORT": 80,
    "ROOT_URL": "http://myapp.com"
  },

  // 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": 15,

  // show a progress bar while uploading. 
  // Make it false when you deploy using a CI box.
  "enableUploadProgressBar": true
}

为了使设置过程正常运行,我们需要进行一些更改。

首先,请确保设置host为您的VPS IP地址,例如:

"host": "123.123.123.123",

如果需要使用默认端口号22以外的端口号,则可以使用该sshOptions字段,例如:

"host": "123.123.123.123",
"sshOptions": { "port": 9876 },

将该username值设置为想要拥有Meteor应用程序安装的任何用户。为了安全起见,我建议删除密码行并改用SSH密钥。取消对该行的注释,pem并确保它指向与您的VPS上安装的SSH公钥相对应的SSH私钥(在中/root/.ssh/authorized_keys)。确保在密码行之后添加逗号!如果您的SSH密钥附有密码短语,请pem完全删除该行,并确保SSH私钥已缓存在ssh代理中(例如,在Mac上ssh-add <path to ssh private key>)。

保留setupMongo设置为其默认值。

更改appName为您的Meteor应用程序的名称。在我们的情况下:

"appName": "myApp",

...并相对于此部署文件夹设置应用程序的位置:

"app": "..",

最后,将设置ROOT_URL为应用程序的指定URL。将端口号明确设置为标准HTTP端口。

// Configure environment
"env": {
  "ROOT_URL": "http://myapp.com",
  "PORT": 80
},

而已!保存mup.json文件,然后运行:

$ mupx setup

此时,mupx将SSH到您的VPS中,安装Docker,设置环境,并提取适当的Docker映像。现在部署您的应用程序:

$ mupx deploy

现在,如果您转到http://123.123.123.123,您的应用将在页面加载时显示。

多核支持

如果您的VPS具有多个核心,则Meteor应用程序可以利用它。我们只需要进行一些快速调整。

首先,您需要安装集群软件包。进入您的Meteor应用程序的文件夹(在本示例中为/projects/myApp),然后键入:

$ meteor add meteorhacks:cluster

现在,编辑mup.json文件并修改环境变量部分,如下所示:

// Configure environment
"env": {
  "ROOT_URL": "http://myapp.com",
  "PORT": 80,
  "CLUSTER_WORKERS_COUNT": "auto"
},

由于我们已经向您的应用添加了新程序包,因此您必须重新部署。

$ mupx setup && mupx deploy

如果您要更改环境变量mup.json而不必部署整个应用程序,则只需使用reconfigure命令。当没有应用程序更改时,这很有用。

$ mupx reconfig

恭喜,您的Meteor应用现已启动并正在运行!此外,只要重新启动VPS,您的应用程序就会自动启动。请留意未来有关Meteor部署和管理的文章。



Leave a Comment

AI 能否應對越來越多的勒索軟件攻擊?

AI 能否應對越來越多的勒索軟件攻擊?

勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根

ReactOS:這是 Windows 的未來嗎?

ReactOS:這是 Windows 的未來嗎?

ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+

人工智能如何將流程自動化提升到新的水平?

人工智能如何將流程自動化提升到新的水平?

閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。

macOS Catalina 10.15.4 補充更新引發的問題多於解決

macOS Catalina 10.15.4 補充更新引發的問題多於解決

最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息

大數據的13個商業數據提取工具

大數據的13個商業數據提取工具

大數據的13個商業數據提取工具

什麼是日誌文件系統,它是如何工作的?

什麼是日誌文件系統,它是如何工作的?

我們的計算機以稱為日誌文件系統的有組織的方式存儲所有數據。這是一種有效的方法,可以讓計算機在您點擊搜索時立即搜索和顯示文件。 https://wethegeek.com/?p=94116&preview=true

技術奇點:人類文明的遙遠未來?

技術奇點:人類文明的遙遠未來?

隨著科學的快速發展,接管了我們的大量工作,我們陷入無法解釋的奇點的風險也在增加。閱讀,奇點對我們意味著什麼。

洞察 26 種大數據分析技術:第 1 部分

洞察 26 種大數據分析技術:第 1 部分

洞察 26 種大數據分析技術:第 1 部分

2021 年人工智能對醫療保健的影響

2021 年人工智能對醫療保健的影響

過去幾十年,醫療保健領域的人工智能取得了巨大飛躍。因此,醫療保健中人工智能的未來仍在日益增長。