Fai*_*zan 12 javascript restart amazon-ec2 node.js forever
我正在使用永远的js来保持我的节点服务器在AWS EC2上全天候运行.
我用这个命令
forever start index.js
Run Code Online (Sandbox Code Playgroud)
但是,我注意到有一段时间它会随机停止进程并且我的网站出现故障.我必须手动ssh到我的服务器再次运行它:
forever restartall
Run Code Online (Sandbox Code Playgroud)
然后它会备份.有没有办法我可以定义超时,假设服务器/网站在5秒内没有响应200,然后自动重启所有永久进程?
我是新手,如果有人能为我的案例一步一步地举例,那就太棒了.
boe*_*m_s 18
NodeJS服务器不应该无缘无故地停止.大多数情况下,由于500错误将停止服务器,然后您将不得不重新启动它.
forever是使用node默认情况下启动服务器.
nodemon 是一个npm包,可在代码更改或服务器停止时重新启动服务器.
您可以使用forever和nodemon通过一起做:
forever start nodemon --exitcrash app.js
Run Code Online (Sandbox Code Playgroud)
要么
forever start -c nodemon app.js
Run Code Online (Sandbox Code Playgroud)
Vis*_*hra 12
我建议使用PM2
哪个是运行服务器生产服务器的最佳选择
以这种方式运行应用程序有什么好处?
如果应用程序崩溃,PM2将自动重启您的应用程序.
PM2将记录未处理的异常 - 在本例中,在/home/safeuser/.pm2/logs/app-err.log中的文件中.
使用一个命令,PM2可以确保在服务器重新启动时它管理的任何应用程序都会重新启动.基本上,您的节点应用程序将作为服务启动.
参考:https://www.digitalocean.com/community/tutorials/how-to-use-pm2-to-setup-a-node-js-production-environment-on-an-ubuntu-vps
弄清楚了。该问题是由于我的 EC2 实例中的可用 RAM 较少造成的。我将 RAM 升级到 2 GB,到目前为止还没有遇到崩溃的情况。
节点也可能会出现未捕获的异常错误,但我的主要问题是由于内存较少。
希望这对其他人有帮助。