为什么我们需要部署流星应用而不是仅启动它?

时间:2016-07-14 23:17:42

标签: meteor web-deployment

众所周知,我们只需在终端中键入meteor即可运行流星应用。 默认情况下,它将启动服务器并使用端口3000.

那么为什么我需要使用MUP等来部署它。

我可以将其配置为使用端口80或使用nginx路由到应用程序的端口80。所以端口不是重点。

编辑: 假设meteor在具有公共IP地址的VPS或云服务器上运行,而不是个人计算机。

2 个答案:

答案 0 :(得分:1)

MUP会做一些你自己可以做的额外事情:

它'捆绑'使用meteor build bundle将代码放入单个文件中 javascript是一个文件,css是另一个文件;它被缩小和混淆,因此它的加载更小,更快,并且不易破译客户端。

在生产中运行时,某些包也应被删除。例如,meteorToys,用于查找集合的实用工具集等等,并未按照其包中的说明捆绑到生产包中。这可以确保您不会部署带有安全漏洞的代码(Meteor玩具基本上会打开客户端删除/更新等等......如果您不小心的话)

因此,简而言之,它会安装您网站的最小版本,确保只对开发有意义的内容不会推向生产环境。

编辑:除此之外,您还需要生产服务器上的所有Meteor构建工具;这可能会增加很多东西,特别是如果你让缓存持续一段时间......

我相信它还负责连接到一个远程MongoDB实例(至少它曾经是免费流星站点的情况),它比在与Web服务器相同的实例上运行更具可扩展性和容错性,以及提供存储等......如果需要的话。

基本上,要手动部署Meteor应用程序,您需要:

你的开发箱上的

  • meteor build bundle您的应用程序到tar文件(使用与您将使用的操作系统对应的体系结构标志)

在服务器上:

  • 安装节点v0.10(或Meteor所需节点的当前版本)

  • 你可能需要安装Fiber@1.0.5(但我相信现在已经是meteor安装的一部分了)

  • 解开捆绑包,进入bundle/programs/server/并运行npm install

  • 在捆绑包文件夹中运行node main.js的服务器。

答案 1 :(得分:0)

部署应用程序的目的是将项目置于本地计算机外部的硬件上。例如,如果您在Heroku应用程序上部署应用程序,则会在heroku的系统上创建一个存储库,并且该代码用于从您的服务器提供应用程序。

如果您只是在个人系统上启动应用程序,您将在非高峰时段缺乏网络和资源可用性以及计算机时间的使用,因为您的系统需要保持对其他用户的关注而不必替代任务。托管服务提供商根据需要提供资源,其多样化的客户群使其系统能够在全球范围内全天候工作。