Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 阿帕奇&x2B;乘客-阿帕奇运行;但不响应请求_Ruby On Rails_Apache_Apache2_Passenger - Fatal编程技术网

Ruby on rails 阿帕奇&x2B;乘客-阿帕奇运行;但不响应请求

Ruby on rails 阿帕奇&x2B;乘客-阿帕奇运行;但不响应请求,ruby-on-rails,apache,apache2,passenger,Ruby On Rails,Apache,Apache2,Passenger,背景 我正在运行一个RubyonRails应用程序,该应用程序还必须提供大量静态文件 我当前的设置是: Debian Linux Lenny 5.0 Apache 2.2.9 乘客2.2.10 问题 一切正常。我看到apache进程正在加速,创建了乘客实例,一切都运行得又快又快 然后,过了一段时间,Apache不再响应请求。客户端确实获得了连接,并且正在“等待响应”,但没有任何响应 我无法手动重现此问题。有时它发生在重新启动后几个小时,其他时间需要几天。以下是我的发现: Apache进程已启动;

背景

我正在运行一个RubyonRails应用程序,该应用程序还必须提供大量静态文件

我当前的设置是:

Debian Linux Lenny 5.0 Apache 2.2.9 乘客2.2.10

问题

一切正常。我看到apache进程正在加速,创建了乘客实例,一切都运行得又快又快

然后,过了一段时间,Apache不再响应请求。客户端确实获得了连接,并且正在“等待响应”,但没有任何响应

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

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

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

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


有人知道这里发生了什么吗?如何解决

由于静态文件的巨大负载,出于性能原因,我们决定在单独的服务器(后来的Amazon S3+CloudFront)上托管静态文件


我目前的猜测是,Apache无法处理静态文件上的大量请求,也无法处理乘客。对于Rails应用程序,当前的设置是Nginx+Unicorn,对于静态文件,当前的设置是S3+CloudFront。

作为补充说明;因为乘客的原因,我们在运行MPU工人。默认情况下,这设置为MaxClient为200。我们已经将其增加到1000(服务器限制为50)。但是我们仍然有相同的问题。当这种情况发生时,如果您尝试发送请求,您的访问日志是否会发生更改?如果发生这种情况时你关掉了乘客,会怎么样。或者只是优雅地重新启动http您可能需要尝试nginx w/passenger来确定问题是在Apache中还是在passenger中。您的passenger全局队列是什么样的?我曾经遇到过这些问题。请求堆积在全局队列上。只需进行版本降级并进行测试。我也遇到了同样的问题,我刚刚降低了乘客版本的等级,问题得到了解决。