如您所见,我是新来的…
我建立了第一个网站,建立了第一个Node.js服务器来为其提供服务,然后将所有内容实时发布到EC2上。
我在我的EC2 IP地址上测试了所有内容,并且似乎一切正常。
现在直到现在,我一直在本地测试我的应用程序,因此每当我关闭终端时,app.js都将停止运行,因此在localhost上将不会提供任何服务,这是有道理的。
现在,我的服务器位于EC2上,每当我关闭终端时,都会发生同样的事情(“很明显”。)。
所以我的问题是如何使Node.js服务器在EC2上运行,例如…永远..以便我的网站永远保持生存.. :)
我读了一些有关名为“ forever”的节点模块的信息,但我想知道(是新的还是全部。)为什么“ forever”功能不是Node.js- EC2系统的默认设置?
我的意思是,如果我错了,请纠正我,但这不是设置Web服务器并将其实时发布以使其永远保持生命的全部意义吗?那不是服务器应该做什么(无限监听请求)吗?如果是这种情况,为什么我们需要额外的模块/设置来实现?
谢谢您的帮助。您可以告诉我,我不仅在寻找解决方案,而且还在解释,因为我真的很困惑。:-)
编辑 (您可能需要一些详细信息)-在EC2上安装我的应用程序之后,这些是我在终端上执行的步骤(该应用程序正在运行Amazon Linux):
Amazon Linux
我在终端上输入ssh -i xxxxxxxxxxx.pem ec2-user@ec2-xx-xx-xx-x.eu-west-1.compute.amazonaws.com
登录到Amazon计算机后,然后转到相关文件夹并执行节点app.js
有机器3个文件夹:node,node_modules和*name of my app*
node
node_modules
*name of my app*
app.js 居住在 *name of my app*
app.js
之后,该站点将在我的EC2 IP上运行
一旦关闭终端,一切都将关闭
在调用Node.js之前,请运行以下命令:
screen
这将创建一个持久的环境,使您的进程在断开连接后继续运行。
重新连接时,可以使用以下命令重新连接到该环境:
screen -r
这是一个随机链接,以了解有关屏幕的更多信息:
http://www.rackaid.com/blog/linux-screen-tutorial-and-how- to/
但是,如果重新启动EC2实例,这将无济于事。有许多不同的方法可以做到这一点。将启动命令添加到/etc/rc.local是一种方法。这是指向Amazon指南的链接,其中包括向/etc/rc.local添加内容。
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/building-shared- amis.html
希望这可以帮助,
詹姆士