确保 Rails 服务器在严重崩溃或进程终止后自动重启的常用方法是什么?你如何处理挂起的进程?我的生产服务器上运行着 nginx 和瘦 - 你会建议在它们之间放置一些东西吗?还是使用其他服务器?
问问题
367 次
2 回答
2
首先:
您应该确定进程挂起或终止的原因。这些不是正常行为,表明某处存在故障。
寻找:
- 崩溃前内存不足或负载过高 - 表明存在配置问题。
- 太新的 nginx 版本。
- 如果您正在虚拟化,这可能会导致 linux 内核出现许多微妙的问题,这些问题可能会导致段错误。如果您使用的是 EC2,最好使用 Amazon Linux。Ubuntu 服务器为此目的太前沿了。
为了重新启动,我建议您使用 monit,因为它快速、简单且可靠 - 这是执行此操作的正常方法。
最后,我建议您设置外部监控以及使用 Pingdom 之类的东西,因为即使 monit 也无法捕获所有类型的故障,例如硬件故障。
于 2012-05-10T14:50:21.457 回答
0
如果您只想监控应用程序,我总是将 Nagios 与 Centreon 一起使用。您可以在 Rails 服务器关闭时设置电子邮件警报。您必须在要监控的每台机器上设置 NRPE。
当检测到错误时,您可以运行 bash 文件来终止挂起的进程并自动重新启动服务器。就个人而言,我从不使用它,因为崩溃意味着出现问题。所以我手动进行以检查所有内容。
于 2012-05-10T14:39:32.350 回答