以
开头的标准程序meteor app -p 3000&
这有效,除非我关闭ssh连接,应用程序不再运行?我不知道为什么会这样。
觉醒编辑:
我将PM2用于传统节点应用程序,但如果我必须自己设置进程监视器,日志,数据库。我可以回到reactjs和socketio并用节点摇动它。
答案 0 :(得分:0)
你可以用nohup(没有挂断)启动流星,这是为了这个目的。
nohup meteor --production &
但是,无论如何使用流星运行网站并不是一个好主意。
我该怎么办才能永远运行流星? 您可以永久使用Node.js工具,该工具旨在将节点应用程序作为服务运行。
我还想指出永远变老,我听说过最近的替代方案,但它似乎仍然是一个非常常见的工具。您还可以使用systemd,它可以更好地与UNIX服务生态系统集成,但这是一个很好的故事。
但首先,你必须像这样“摧毁”你的流星应用程序:
cd my-project-meteor
meteor bundle --directory ../my-project-node
这需要一些时间
cd ../my-project-node/programs/server
npm install
这也需要一些时间 所以现在你有了一个普通的节点应用程序,你可以用节点main.js
运行让我提一下,使用meteor使用的节点版本可能是个好主意,从流星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表示全局:永久访问系统上的所有用户 sudo npm install -g forever 要将节点应用程序作为服务启动,可以使用以下命令,该命令正确设置一些环境变量并永久运行应用程序:
sudo export PORT=80 MONGO_URL=mongodb://localhost/my-project-mongodb ROOT_URL=http://localhost forever start my-project-node/main.js
您可以使用永远停止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) 现在了解为什么流星部署是惊人的:D
从here
回复副本答案 1 :(得分:0)
考虑使用Arunoda的mup软件包轻松部署并在生产环境中运行您的应用程序。