你如何确保你的Rails服务器运行

时间:2012-05-10 13:02:37

标签: ruby-on-rails nginx production-environment thin

确保在严重崩溃或进程终止后自动重启Rails服务器的常用方法是什么?你如何处理悬挂过程?我在生产服务器上运行nginx和thin - 你会建议在它们之间添加一些东西吗?或者使用其他服务器?

2 个答案:

答案 0 :(得分:2)

首先:

您应该确定进程挂起或终止的原因。这些都不是正常行为,并且在某处表明存在故障。

寻找:

  • 崩溃前内存不足或负载过高 - 表示配置问题。
  • 太新的nginx版本。
  • 如果您正在虚拟化,这可能会导致Linux内核出现一些可能导致段错误的细微问题。如果您使用的是EC2,请使用Amazon Linux。为此目的,Ubuntu服务器太过分了。

为了重新启动,我建议你使用monit,因为这是快速,简单和可靠的 - 这是正常的方法。

最后,我建议您使用Pingdom之类的东西设置外部监控,因为即使monit也不会捕获每种类型的故障,例如硬件故障。

答案 1 :(得分:0)

如果您只想监控应用程序,我总是将Nagios与Centreon一起使用。您可以在rails服务器关闭时设置电子邮件警报。您必须在要监控的每台计算机上设置NRPE。

当检测到错误时,您可以运行bash文件来终止挂起进程并自动重启服务器。就个人而言,我从不使用它,因为崩溃意味着出了问题。所以我手动完成检查所有内容。

尝试查看此处:http://www.centreon.com/