Web 部署 - 为什么我们需要部署 meteor 应用程序,而不仅仅是启动它


众所周知

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

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

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


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

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

它将代码"捆绑"到单个文件中,使用meteor build bundleJavaScript是一个文件,CSS是另一个文件;它被缩小和混淆,因此它更小,加载速度更快,并且在客户端上不太容易破译。

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

因此,简而言之,它会安装您网站的最小版本,确保仅用于开发的内容不会被推送到生产环境。

编辑:这样做的另一个原因是,你不需要生产服务器上的所有Meteor构建工具;这可能会增加很多东西,特别是如果你让缓存运行一段时间......

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

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

在开发框中:

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

在服务器上:

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

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

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

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

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

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

最新更新