2010-07-11 100 views
3

背景Apache + Passenger - Apache正在运行;但不响应请求

我运行一个Ruby on Rails应用程序具有服务于大量的静态文件也是如此。

我的设置是目前:

的Debian Linux的莱尼5.0 的Apache 2.2.9 客运2.2.10

问题

一切都正常运行。我看到apache进程正在启动,乘客实例被创建并且一切都运行得很快而且活泼。

然后,一段时间后Apache不再对请求做出响应。客户确实获得了联系,并且正在“等待回应”,但没有一个来。

我无法手动重现此问题。有时会在重新启动后几个小时发生,而其他时间则需要几天才能发生。以下是我发现的:

Apache进程已启动;乘客在那里,但它没有任何事件发生(可能因为实例在一段时间不活动后死亡)

/var/log/syslog,/ var/log/messages中没有错误消息或问题,不在apache的访问和错误日​​志,不在我的Rails生产日志中。没有。

当我停止并启动Apache时,一切都恢复正常。

有没有人有任何线索这里发生了什么?以及如何解决?

+0

作为补充说明;由于Passenger,我们正在运行mpm_worker。这被默认设置为200的MaxClients。我们已经把这个提升到了1000(而ServerLimit为50)。但是我们仍然有相同的问题。 – Ariejan 2010-07-11 08:38:48

+0

何时发生,如果您尝试发送请求,您是否会在access_log中进行更改?如果你在乘客发生事故时关掉它,会发生什么?或只是优雅的重启HTTP – Falcon 2010-07-11 09:16:27

+0

你可能想尝试nginx W /乘客来确定问题是在Apache还是乘客。 – inntran 2011-08-18 17:35:54

回答

0

由于静态文件的巨大负载,我们决定将静态文件托管在单独的服务器(以后的Amazon S3 + CloudFront)上,以提高性能。

我目前的猜测是,Apache无法应对静态文件也做Passenger的大量请求。目前的设置是针对Rails应用程序的Nginx + Unicorn和针对静态文件的S3 + CloudFront。

相关问题