如何永远运行流星?使用第三方数据库好吗?

时间:2014-09-05 02:09:19

标签: javascript meteor

所以,当我运行meteor时,app工作正常。但是,当我关闭与云服务器的连接时,流星显然会关闭。我该怎么办才能永远运行流星?

另外,使用像https://mongolab.com/这样的第三方数据库服务的重点是什么?它不会减慢网站的速度,因为现在应用程序必须连接到他们的数据库而不是本地数据库吗?

例如,我如何连接到mongolab?

1 个答案:

答案 0 :(得分:14)

  

所以,当我运行meteor时,app工作正常。但是,当我关闭时   连接到我的云服务器,流星显然会关闭。

你可以使用nohup启动流星(没有挂断),用于此目的。

nohup meteor --production &

但是,无论如何使用流星运行网站并不是一个好主意。

  

我该怎样做才能永远地运行流星?

您可以使用forever,一个Node.js工具,用于将节点应用作为服务运行。

我还想指出forever已经老了,我已经听说过最近的替代方案,但它似乎仍然是一个非常常见的工具。 您还可以使用systemd,它可以更好地与UNIX服务生态系统集成,但这是一个非常简单的故事。

但首先,你必须" demeteorize"你的流星应用程序是这样的:

cd my-project-meteor
meteor bundle --directory ../my-project-node
# this is going to take some time
cd ../my-project-node/programs/server
npm install
# this is going to take some time too

现在你有了一个普通的节点应用程序,你可以使用node main.js

运行

让我提一下,使用流星使用的节点版本可能是个好主意,从流星0.9.1开始是0.10.29 您可以传统安装它,也可以使用流星工具附带的节点版本。

sudo ln -s ~/.meteor/packages/meteor-tool/1.0.27/meteor-tool-os.linux.x86_64/dev_bundle/bin/node /usr/bin/node
sudo ln -s ~/.meteor/packages/meteor-tool/1.0.27/meteor-tool-os.linux.x86_64/dev_bundle/bin/npm /usr/bin/npm

请注意这种方式安装"你系统上的node + npm是有问题的,因为:

  • 它假设你只做与流星相关的东西。
  • 它取决于流星工具的发布过程(如果流星工具更新,您需要重新运行这些表彰)。

您可以使用npm:

安装forever工具
# -g means globally : give access to forever to all users on the system
sudo npm install -g forever

要将节点应用程序作为服务启动,您可以使用以下命令,该命令正确设置一些环境变量并使用forever运行应用程序:

sudo PORT=80 MONGO_URL=mongodb://localhost/my-project-mongodb ROOT_URL=http://localhost forever start my-project-node/main.js

您可以使用forever stop my-project-node/main.js

进行监控
  

此外,使用第三方数据库服务的重点是什么   https://mongolab.com/

使用流星工具时,会自动为您启动mongod进程,由代表您应用的meteor执行的基础节点进程将连接到此mongo实例。

当我们想要将我的流星应用程序作为节点应用程序启动时,我们必须自己处理mongo的东西,这有点回答这个问题:为什么不使用其他服务为我们处理它,他们知道的更好,对吧?

  

它不会减慢网站的速度,因为现在应用程序必须这样做   连接到他们的数据库而不是本地数据库?

当然,依赖第三方数据库服务有其不便之处,这就是其中之一。网络通信总是比本地主机上发生的进程间通信慢(这在现在可以找到的这些SSD支持的廉价VPS上尤其如此)。

  

例如,我如何连接到mongolab?

通过为环境变量MONGO_URL设置适当的值,数据库服务提供者将为您提供与您的在线mongodb对应的URL,这是您需要传递给节点进程的命令行,如果你想让meteor连接到你的远程数据库并像往常一样工作。

如果您要启动专用的本地mongod实例以让您的应用程序连接到它,那么这是另一个主题,但您必须按照以下步骤操作:

  • 首先在服务器上正确安装mongodb,使用操作系统版本的参考文档。正确地说,我的意思是选择与meteor当前使用的版本相同的版本(2.4.9)并让它作为服务运行,以便在服务器重新启动时实际重启。
  • 通过使用mongo命令启动客户端来测试mongod是否正在运行。
  • 在永久启动您的应用时传递正确的MONGO_URL(类似mongodb://localhost/my-project-mongodb

现在明白为什么meteor deploy是惊人的:D