goo*_*ing 10 javascript meteor
所以,当我运行时meteor
,应用程序运行正常.但是,当我关闭与云服务器的连接时,流星显然会关闭.我该怎么办才能永远运行流星?
另外,使用像https://mongolab.com/这样的第三方数据库服务有什么意义?它不会减慢网站的速度,因为现在应用程序必须连接到他们的数据库而不是本地数据库吗?
例如,我如何连接到mongolab?
sai*_*unt 14
所以,当我运行meteor时,app工作正常.但是,当我关闭与云服务器的连接时,流星显然会关闭.
您可以启动流星nohup
(没有挂断)来实现此目的.
nohup meteor --production &
Run Code Online (Sandbox Code Playgroud)
但无论如何,使用流星运行生产网站并不是一个好主意.
我该怎么办才能永远运行流星?
您可以使用forever
Node.js工具,该工具旨在将节点应用程序作为服务运行.
我还想指出那forever
已经老了,我听说过最近的替代方案,但它似乎仍然是一个非常常见的工具.您也可以使用systemd
哪种更好地与UNIX服务生态系统集成,但这是一个很好的故事.
但首先,你必须像这样"摧毁"你的流星应用程序:
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
Run Code Online (Sandbox Code Playgroud)
所以现在你有了一个可以运行的普通节点应用程序 node 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
Run Code Online (Sandbox Code Playgroud)
请注意,这种在系统上"安装"node + npm的方式存在问题,因为:
您可以forever
使用npm 安装该工具:
# -g means globally : give access to forever to all users on the system
sudo npm install -g forever
Run Code Online (Sandbox Code Playgroud)
要将节点应用程序作为服务启动,可以使用以下命令,该命令正确设置一些环境变量并使用以下命令运行应用程序forever
:
sudo PORT=80 MONGO_URL=mongodb://localhost/my-project-mongodb ROOT_URL=http://localhost forever start my-project-node/main.js
Run Code Online (Sandbox Code Playgroud)
您可以使用它进行监控 forever stop my-project-node/main.js
另外,使用像https://mongolab.com/这样的第三方数据库服务有 什么意义?
使用流星工具时,它会mongod
自动为您启动一个进程,由代表您的应用程序的meteor执行的基础节点进程将连接到此mongo实例.
当我们想要将我的流星应用程序作为节点应用程序启动时,我们必须自己处理mongo的东西,这有点回答这个问题:为什么不使用其他服务为我们处理它,他们知道的更好,对吧?
它不会减慢网站的速度,因为现在应用程序必须连接到他们的数据库而不是本地数据库吗?
当然,依赖第三方数据库服务有其不便之处,这就是其中之一.网络通信总是比本地主机上发生的进程间通信慢(在现在可以找到的这些SSD支持的廉价VPS上尤其如此).
例如,我如何连接到mongolab?
通过为环境变量设置适当的值MONGO_URL
,数据库服务提供者将为您提供与您的在线对应的URL,mongodb
如果您希望meteor连接到远程数据库,则需要在命令行中传递给节点进程.像往常一样工作.
如果您想启动一个专用的本地mongod
实例让您的应用程序连接到它,那么这是另一个主题,但您必须遵循以下步骤:
mongodb
在服务器上正确安装,使用操作系统版本的参考文档.通过正确我的意思是选择与meteor当前使用相同的版本(2.4.9)并让它作为服务运行,以便在服务器重新启动时实际重启.mongo
命令启动客户端来测试mongod是否正在运行.mongodb://localhost/my-project-mongodb
)现在明白为什么meteor deploy
是惊人的:D
归档时间: |
|
查看次数: |
5928 次 |
最近记录: |