Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.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
Perl IO写入:(32)Apache 2.4中的管道断裂_Perl_Apache2.4_Mod Perl2 - Fatal编程技术网

Perl IO写入:(32)Apache 2.4中的管道断裂

Perl IO写入:(32)Apache 2.4中的管道断裂,perl,apache2.4,mod-perl2,Perl,Apache2.4,Mod Perl2,我们刚刚将站点移动到新服务器,并一直看到此错误消息: [Tue Nov 07 14:57:08.796821 2017] [:error] [pid 1777] :Apache2 IO write: (32) Broken pipe at /home/example/web/example.org/public_html/cgi-bin/links/admin/Booking/Calendar.pm line 228 第228行是: print Links::SiteHTML::display

我们刚刚将站点移动到新服务器,并一直看到此错误消息:

[Tue Nov 07 14:57:08.796821 2017] [:error] [pid 1777] :Apache2 IO write: (32) Broken pipe at /home/example/web/example.org/public_html/cgi-bin/links/admin/Booking/Calendar.pm line 228
第228行是:

print Links::SiteHTML::display('calendar_view_room', { month_loop => \@dates, owner_id_fk => $room_owner_useridfk, room_name => $room->{room_name_show}, target => $target, room_id => $room_id });
服务器设置为nginx前端,然后将Perl内容的代理传递到Apache2.4。我们还在Apache端使用mod_perl

有什么我可以看的,试图找出为什么会出现这个错误吗?我能在谷歌上找到的唯一东西要追溯到2009年,没有那么多帮助

更新:为了尝试找出导致此问题的IP(以便我可以查看它们是正版还是僵尸),我已将Apache错误日志conf更新为:

ErrorLogFormat "[%t] [%l] [pid %P] %F: %E: [client %a] %M"
我得到了一些新的格式:

[Wed Nov 08:54:41 2017][error][pid 12574]util_script.c(591): [客户端122.119.97.15:42982]脚本中的头格式不正确 “community.cgi”:错误的标题:

…但是关于IO的错误,我没有为客户提供任何信息

[2017年11月8日星期三08:59:53][error][pid 12576]Apache2__Log.h(331): [客户:Apache2 IO写入:(32)在 /home/example.org/public_html/cgi-bin/links/admin/Booking/Calendar.pm 第228行


当客户端在发送所有输出之前离开时会发生此错误。在早期版本的apache/mod_perl(apache 2.0?)上,它只是默默地失败了(我认为这是2.2上的连接中止错误)


我从具有非常大输出的合法请求中看到这些,或者偶尔从移动用户中看到,只要不足以表明存在更大的问题,我就忽略它们。

当客户端在发送所有输出之前离开时,就会发生此错误。在早期版本的apache/mod_perl(apache 2.0?)上,它只是无声地失败(我认为这是2.2上的连接中止错误)


我从输出量非常大的合法请求中看到这些错误,或者偶尔从移动用户中看到,只要不足以表明存在更大的问题,我就忽略它们。

自从迁移到apache2.4以来,我们也经常看到这些错误:

IO write: (32) Broken pipe
它们是由客户端错误地终止连接触发的,在以前的apache版本中被忽略,或者在不同的错误下报告

我们也(在2.4中)看到了类似的错误

Apache2 IO write: (104) Connection reset by peer
在apache2.2之前,我们看到了以下错误:

IO write: (103) Software caused connection abort

这些错误中的绝大多数(但不是全部)是由机器人程序触发的,并且也使用HTTP 1.0协议而不是1.1协议,但我确信真正的网络和客户端错误也会触发它们。

自从迁移到apache2.4以来,我们也经常看到这些错误:

IO write: (32) Broken pipe
它们是由客户端错误地终止连接触发的,在以前的apache版本中被忽略,或者在不同的错误下报告

我们也(在2.4中)看到了类似的错误

Apache2 IO write: (104) Connection reset by peer
在apache2.2之前,我们看到了以下错误:

IO write: (103) Software caused connection abort

绝大多数(但不是全部)这些错误中有一个是由机器人程序触发的,并且也使用HTTP 1.0协议而不是1.1协议,但我确信真正的网络和客户端错误也会触发它们。

将错误与请求关联起来,看看它们是否来自合法用户?根据我自己的经验,它们似乎来自发送请求的机器人程序,但之前会关闭连接获得响应。@ChrisTurner Thank将对此进行研究。这有点棘手,因为错误日志中没有IP。也许我可以调整错误日志格式,以便将来包含它occurences@ChrisTurner-我已经在Apache中更新了我的
ErrorLogFormat
,以尝试查找IP…但由于某种原因,在该错误上它不起作用?(请参阅我的最新问题).有什么想法吗?将错误与请求关联起来,看看它们是否来自合法用户?根据我自己的经验,它们似乎来自发送请求的机器人程序,但在收到响应之前关闭连接。@ChrisTurner Thank将对此进行研究。做起来有点棘手,因为错误日志中没有IP。也许我可以调整错误日志格式所以它包括了未来的计划occurences@ChrisTurner-我已经在Apache中更新了我的
ErrorLogFormat
,以尝试查找IP…但由于某种原因,在该错误上它不起作用?(请查看我更新的问题)。有什么想法吗?