在我的本地节点服务器上,任何未捕获的异常都会导致服务器崩溃,并需要手动重新启动。因此,在本地运行时使用了forever或pm2来管理。 但是,在AWS Elastic Beanstalk中使用Node.js环境的开发服务器则不同。尽管它记录未捕获的异常并将其抛出,但它不会终止。即使它终止了,也会自动重启。 所以,在AWS Elastic Beanstalk环境中是否需要PM2或Forever来保持Node.js一直运行?
在我的本地节点服务器上,任何未捕获的异常都会导致服务器崩溃,并需要手动重新启动。因此,在本地运行时使用了forever或pm2来管理。 但是,在AWS Elastic Beanstalk中使用Node.js环境的开发服务器则不同。尽管它记录未捕获的异常并将其抛出,但它不会终止。即使它终止了,也会自动重启。 所以,在AWS Elastic Beanstalk环境中是否需要PM2或Forever来保持Node.js一直运行?
我的建议:
相比于EBS,PM2有许多优势:
使用PM2,您可以控制和管理许多应用程序(进程),这些进程可以在不同的平台上运行(JS、Ruby等)。而在EBS中,您一次只能部署一个应用程序到EBS上。
PM2直接控制所有正在运行的进程,您可以重新加载/重启/停止一个进程并保持其他进程不受影响。
EBS只能为您解决一些问题,例如崩溃后自动重启或限制内存泄漏。但是,PM2可以帮助您控制许多其他问题(优雅地重新加载、实现零延迟重新加载等)。 现在,我对EBS的完整功能可能有些错误,它可能提供更多功能。
这是一个关于如何在EBS中使用PM2的教程:
http://pm2.keymetrics.io/docs/tutorials/use-pm2-with-aws-elastic-beanstalk/
希望能对你有所帮助!
.ebextensions/web.config
文件自定义实例。高级环境自定义 - Ezzat/health
路由,当 EB 检测到健康状态失败时,它会替换/重启您的实例。这可以解决整个操作系统崩溃/冻结的情况,例如当您的系统内存耗尽时。 - Capaj