来自Apache的CGI,管道损坏

时间:2018-09-08 15:22:29

标签: apache nginx signals cgi epipe

当客户端(我的意思是浏览器或TCP网关)在中间断开连接时,运行CGI脚本的Apache(或Nginx)会发生什么?

  1. Apache / Nginx是否记录错误? (如果是,是哪一个?在哪里?)

  2. CGI脚本是否已将SIGPIPE发送给?

1 个答案:

答案 0 :(得分:0)

Apache CGI脚本中断时,没有SIGPIPE。

使用以下代码进行了测试:

#!/usr/bin/perl

use strict;
use warnings;

$| = 1;

#$SIG{PIPE} = "IGNORE";
$SIG{PIPE} = sub {
  open my $f, '>', 'log.txt';
  print $f "PIPE: $ENV{SERVER_NAME}\n";
  close $f;
};

print "Content-Type: text/plain\n\n";

sleep 10;

print "OK";