2013-02-14 155 views
0

我想知道,如果我将一个Meteor应用程序部署到虚拟机,为什么我不能直接在虚拟机上安装流星,并使用流星运行命令运行我的应用程序?文档的部署部分说创建一个tarball捆绑包并将其部署到具有Node和MongoDB的服务器,但是我不能只在服务器上安装Meteor?然后设置我的DNS条目来听3000端口...为什么这个想法不起作用?流星通过安装流星部署到虚拟机

回答

3

你的想法可以正常工作。但是,我只是建议如果你打算使用这个,你可能会在更“生产”的环境中运行。而且安装起来非常简单。

在高水平这里是你需要什么:

  1. 需要安装节点0.8.4
  2. 需要安装MongoDB的
  3. 按照指示here部署。这些只是更新流星0.5.5,所以才知道这一点。
  4. 需要永远安装Node.js的包

为了使我的生活更轻松,我创建一个脚本来处理启动/停止我的流星应用程序。它会设置一切使用完整的MongoDB:

#!/bin/bash 

SUCCESS=0 
FAILURE=1 

if [ $# -ne 1 ] 
then 
    echo "Usage: start|stop|restart" 
    exit $FAILURE 
fi 

case "$1" in 
    start) 
     export MONGO_URL=mongodb://localhost:27017/<name of the database> 
     export PORT=3000 
     export ROOT_URL=http://yourhostname.com:3000 
     forever start bundle/main.js 
     ;; 

    stop) 
     forever stop bundle/main.js 
     ;; 

    restart) 
     forever restart bundle/main.js 
     ;; 

esac 
+0

我想我的问题是,做这一切,与只在流星上安装流星之间有什么区别服务器?按照您在此处描述的方式进行操作有什么优势? – 2013-02-14 14:48:25

+0

只运行流星更像是一种发展模式。一切都可以帮助您快速启动并快速开发。我不确定Meteor是否在服务器端运行了一个完整的MongoDB,这可能是其中一个原因。此外,如果您想要更好地控制MongoDB服务器或将其扩展出来,那么在独立的MongoDB上就有详细记录。我不确定如果您想要更好地控制与Meteor一起运行的MongoDB,那么您将能够使用可用于独立MongoDB的资源。 – shinank 2013-02-14 15:16:23

+0

简而言之,如果你知道你永远不会想要扩展你的应用程序,如果你不在乎了解更多关于node.js或MongoDB的信息,那么只运行Meteor作为你的生产服务器应该没问题。如果你认为你可能想扩展你的应用程序或者学习一些Meteor使用的其他工具,那么你可能会咬紧牙关,并开始学习这些工具。 – shinank 2013-02-14 15:18:48

0

可能在定期安装的Meteor上的VM中运行您的部署。

认为它就像运行内置开发服务器的rails应用程序一样。 就流星而言,捆绑版本应该与开发版本没有区别。您创建的软件包确保所有必需的依赖关系都与它捆绑在一起。

the meteor docs约流星束引述:

该命令将产生在一个压缩包的形式的完全包含的Node.js的应用程序。要运行此应用程序,您需要提供Node.js 0.8和一个MongoDB服务器。然后,您可以通过调用节点来运行应用程序,指定要侦听的应用程序的HTTP端口以及MongoDB端点。如果你还没有MongoDB服务器,我们可以推荐MongoHQ的朋友。

$ PORT = 3000 MONGO_URL = mongodb的://本地主机:27017/MyApp的节点束/ main.js

其他软件包可能需要其他环境变量(例如,电子邮件包需要MAIL_URL环境变量)。

嗯,我从来没有将底层数据库更改为专用的MongoDB服务器与开发版本,但我认为应该可以通过设置提到的环境变量。

PS:

您写道:

然后设置我的DNS条目侦听端口3000 ...

你也很难设置与端口一个DNS条目...

+0

所以,你说没有理由不安装我的虚拟机安装流星?你发布的文档部分是为什么我认为流星团队说我们不应该通过安装流星来设置我们的服务器... – 2013-02-14 14:06:18