脚本标题过早结束

脚本标题过早结束

我的 apache 日志中经常出现“脚本标头过早结束”错误,这会导致内部 500 错误。我理解错误消息的含义 - 我的应用程序没有向浏览器提供所需的标头(可能什么都没有),但奇怪的是这种情况并不总是发生。实际上,这种情况通常发生在部署后我第一次访问网站时。这可能是内存问题吗?有人知道如何解决这个问题吗?我的 apache 日志并没有告诉我任何事情。

我正在 ubuntu hardy 上使用 rails 框架运行一个 ruby​​ 网站。

谢谢你!

答案1

如果这种情况在部署后立即发生,则可能意味着 Ruby 进程正在重新启动,尚未准备好提供页面。Apache 只会给它一定的时间来提供每个页面,然后它会超时并提供 500 个页面。一旦 Ruby 进程“预热”,一切就会恢复正常。

您的 Apache 访问日志应该会告诉您失败的请求花费了多长时间。我猜它们将与 Apache 配置的超时相同;例如: http://httpd.apache.org/mod_fcgid/mod/mod_fcgid.html#fcgidconnecttimeout

答案2

您正在运行什么脚本,Perl?

您可以尝试启用警告并使用 Carp 来捕获错误,如下所示:

#!/usr/bin/perl -w
use strict;
use CGI::Carp qw/fatalsToBrowser/; 

相关内容