【问题标题】:Meteor deploying to a VM by installing meteor通过安装流星部署到虚拟机
【发布时间】:2013-02-14 04:13:51
【问题描述】:

我想知道,如果我将 Meteor 应用程序部署到 VM,为什么我不能在 vm 上安装 Meteor,然后使用 meteor run 命令运行我的应用程序?文档的部署部分说要创建一个 tarball 包并将其部署到具有 Node 和 MongoDB 的服务器,但我不能只在服务器上安装 Meteor 吗?然后设置我的 DNS 条目来监听 3000 端口……为什么这个想法行不通?

【问题讨论】:

    标签: meteor


    【解决方案1】:

    你的想法会很好。但是,我只是建议,如果您要使用它,最好在更“生产”类型的环境中运行。而且很容易设置。

    在高层次上,这是您需要的:

    1. 需要安装Node 0.8.x
    2. 需要安装MongoDB
    3. 按照here 的指示进行部署。这些刚刚针对 Meteor 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
    

    【讨论】:

    • 我想我的问题是,做这一切和在服务器上安装流星有什么区别?按照您在此处描述的方式做事有什么好处吗?
    • 只运行 Meteor 更像是一种开发模式。一切都可以帮助您快速启动并运行以进行开发。我不确定 Meteor 是否在服务器端运行完整的 MongoDB,所以这可能是原因之一。此外,如果您想更好地控制您的 MongoDB 服务器或将其扩展,它在独立 MongoDB 上有很好的记录。我不确定如果您想要更多地控制与 Meteor 一起运行的 MongoDB,您是否能够使用已用于独立 MongoDB 的资源。
    • 简而言之,如果您知道您永远不会想要扩展您的应用程序,如果您不想了解有关 node.js 或 MongoDB 的更多信息,那么只运行 Meteor 作为您的生产服务器应该没问题。如果您认为您可能想要扩展您的应用程序或学习 Meteor 使用的其他一些工具,那么您不妨硬着头皮开始学习这些工具。
    • 我意识到你不想在生产中安装流星的另一个原因:这样做意味着你处于“开发者”模式,因此你的 js 文件和模板文件没有被缩小/压缩。创建一个包并进行部署,可以很好地缩小和压缩所有内容。
    • 酷。这是另一个很好的理由。这可能对你也有帮助,我几天前才发现它。我的脚本将让您启动一个应用程序并使其保持运行。但是,我想为它创建一个服务。我自己没有尝试过,但是如果您要走这条路,它可能会很有用。 exratione.com/2011/07/…
    【解决方案2】:

    可以在常规安装的 Meteor 上在 VM 中运行部署。

    可以将其想象为使用内置开发服务器运行 rails 应用程序。 就 Meteor 而言,捆绑版本应该与开发版本没有什么不同。您创建的包可确保所有必要的依赖项也与其捆绑。

    来自the meteor docs 关于meteor bundle的引用:

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

    $ PORT=3000 MONGO_URL=mongodb://localhost:27017/myapp node bundle/main.js

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

    好吧,我从未将底层数据库更改为具有开发版本的专用 MongoDB 服务器,但我认为只需设置上述环境变量即可。

    附:

    你写道:

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

    您将很难使用 DNS 条目设置端口...

    【讨论】:

    • 那么,你是说没有理由不通过安装流星来设置我的虚拟机?您发布的文档部分就是为什么我认为流星团队说我们不应该通过安装流星来设置我们的服务器......
    猜你喜欢
    • 2016-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-10
    • 2016-12-06
    • 1970-01-01
    • 1970-01-01
    • 2021-02-28
    相关资源
    最近更新 更多