为什么我们需要部署一个流星应用程序而不是仅仅启动它?
Why do we need to deploy a meteor app instead of just starting it?
众所周知,我们只需在终端中输入 meteor
即可 运行 一个流星应用程序。
默认情况下,它将启动服务器并使用端口 3000。
那么为什么我需要使用 MUP
等来部署它
我可以将其配置为使用端口 80 或使用 nginx
为应用程序路由到端口 80。所以端口不是重点。
编辑:
假设 meteor 在 VPS 或具有 public IP 地址的云服务器上 运行ning,而不是个人计算机。
部署应用程序的目的是将项目放置在本地计算机之外的硬件上。例如,如果您在 Heroku 应用程序上部署一个应用程序,您会在 heroku 的系统上创建一个存储库,并且该代码用于在他们的服务器之外为您的应用程序提供服务。
如果您只是在您的个人系统上启动应用程序,您将遭受网络和资源可用性不足以及非高峰时间计算机使用不足的困扰,因为您的系统需要保持对其他用户的关注没有替代任务。托管服务提供商根据需要提供资源,他们多样化的客户群允许他们的系统在全球范围内全天候工作。
MUP 做了一些您可以自己做的额外事情:
它 'bundles' 代码到一个文件中,使用 meteor build bundle
javascript 是一个文件,css 是另一个;它被缩小和混淆,因此它更小,加载速度更快,并且在客户端上更不容易破译。
一些软件包也打算在 运行 投入生产时删除。例如 meteorToys,用于查找集合的实用工具集等等,并未按照其包中的说明捆绑到生产包中。这确保您不会部署具有安全漏洞的代码(Meteor 玩具基本上会打开客户端删除/更新等......如果您不小心)
因此,简而言之,它会安装您网站的最小版本,确保仅用于开发的内容不会推送到生产环境。
编辑:这样做的另一个原因是您不需要生产服务器上的所有 Meteor 构建工具;这可以加起来很多东西,特别是如果你让缓存持续一段时间......
我相信它还负责连接到远程 MongoDB 实例(至少在免费的 meteor 站点上曾经是这种情况),它比 运行 更具可扩展性和容错性]在与 Web 服务器相同的实例上,以及配置存储等...如果需要。
基本上,要手动部署 Meteor 应用程序,您需要:
在您的开发箱上:
meteor build bundle
您的应用程序到 tar 文件(使用与您将使用的 OS 相对应的体系结构标志)
在服务器上:
安装 node v0.10(或者 Meteor 要求的当前 node 版本)
您可能必须安装 Fiber@1.0.5(但我相信这现在已经是 meteor 安装的一部分)
解开tar包,进入bundle/programs/server/
和运行npm install
运行 捆绑文件夹中有 node main.js
的服务器。
众所周知,我们只需在终端中输入 meteor
即可 运行 一个流星应用程序。
默认情况下,它将启动服务器并使用端口 3000。
那么为什么我需要使用 MUP
等来部署它
我可以将其配置为使用端口 80 或使用 nginx
为应用程序路由到端口 80。所以端口不是重点。
编辑: 假设 meteor 在 VPS 或具有 public IP 地址的云服务器上 运行ning,而不是个人计算机。
部署应用程序的目的是将项目放置在本地计算机之外的硬件上。例如,如果您在 Heroku 应用程序上部署一个应用程序,您会在 heroku 的系统上创建一个存储库,并且该代码用于在他们的服务器之外为您的应用程序提供服务。
如果您只是在您的个人系统上启动应用程序,您将遭受网络和资源可用性不足以及非高峰时间计算机使用不足的困扰,因为您的系统需要保持对其他用户的关注没有替代任务。托管服务提供商根据需要提供资源,他们多样化的客户群允许他们的系统在全球范围内全天候工作。
MUP 做了一些您可以自己做的额外事情:
它 'bundles' 代码到一个文件中,使用 meteor build bundle
javascript 是一个文件,css 是另一个;它被缩小和混淆,因此它更小,加载速度更快,并且在客户端上更不容易破译。
一些软件包也打算在 运行 投入生产时删除。例如 meteorToys,用于查找集合的实用工具集等等,并未按照其包中的说明捆绑到生产包中。这确保您不会部署具有安全漏洞的代码(Meteor 玩具基本上会打开客户端删除/更新等......如果您不小心)
因此,简而言之,它会安装您网站的最小版本,确保仅用于开发的内容不会推送到生产环境。
编辑:这样做的另一个原因是您不需要生产服务器上的所有 Meteor 构建工具;这可以加起来很多东西,特别是如果你让缓存持续一段时间......
我相信它还负责连接到远程 MongoDB 实例(至少在免费的 meteor 站点上曾经是这种情况),它比 运行 更具可扩展性和容错性]在与 Web 服务器相同的实例上,以及配置存储等...如果需要。
基本上,要手动部署 Meteor 应用程序,您需要:
在您的开发箱上:
meteor build bundle
您的应用程序到 tar 文件(使用与您将使用的 OS 相对应的体系结构标志)
在服务器上:
安装 node v0.10(或者 Meteor 要求的当前 node 版本)
您可能必须安装 Fiber@1.0.5(但我相信这现在已经是 meteor 安装的一部分)
解开tar包,进入
bundle/programs/server/
和运行npm install
运行 捆绑文件夹中有
node main.js
的服务器。