【问题标题】:IO write: (32) Broken pipe in Apache 2.4IO 写入:(32) Apache 2.4 中的管道损坏
【发布时间】:2018-04-20 00:59:57
【问题描述】:

我们刚刚将网站移至新服务器,并不断看到此错误消息:

[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 内容的代理传递到 Apache 2.4。我们还在 Apache 端使用 mod_perl

有什么我可以看的,试图找出为什么会出现这个错误?我在 Google 上能找到的唯一内容可以追溯到 2009 年,并没有太大帮助。

更新:为了尝试找出导致此问题的 IP(以便我可以查看它们是真实的还是机器人),我已将我的 Apache 错误日志配置更新为:

ErrorLogFormat "[%t] [%l] [pid %P] %F: %E: [client %a] %M"

我对某些人来说新格式很好:

[2017 年 11 月 8 日星期三 08:54:41] [错误] [pid 12574] util_script.c(591): [client 122.119.97.15:42982] 来自脚本的错误标头 'community.cgi':错误的标题:

...但是对于与 IO 相关的错误,我没有为客户得到任何东西?

[2017 年 11 月 8 日星期三 08:59:53] [错误] [pid 12576] Apache2__Log.h(331): [client :Apache2 IO write: (32) Broken pipe at /home/example.org/public_html/cgi-bin/links/admin/Booking/Calendar.pm 第 228 行

【问题讨论】:

  • 将错误与请求关联起来,看看它们是否来自合法用户?根据我自己的经验,它们似乎来自发送请求但在收到响应之前关闭连接的机器人。
  • @ChrisTurner 谢谢会调查的。有点棘手,因为错误日志没有 IP。也许我可以调整错误日志格式,以便将来发生时包含它
  • @ChrisTurner - 我已经在 Apache 中更新了我的 ErrorLogFormat,以尝试查找 IP……但由于某种原因,该错误不起作用? (请参阅我更新的问题)。有什么想法吗?

标签: perl apache2.4 mod-perl2


【解决方案1】:

当客户端在所有输出发送之前离开时会发生此错误。在早期版本的 apache/mod_perl(apache 2.0?)上,它只是默默地失败了(我认为这是 2.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,但我确信真正的网络和客户端错误也会触发它们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-04
      • 2017-04-22
      • 2011-02-12
      • 2014-04-28
      • 1970-01-01
      • 1970-01-01
      • 2011-07-13
      • 2013-04-16
      相关资源
      最近更新 更多