Apache mod_fcgid 无法初始化环境请求标头

Apache mod_fcgid 无法初始化环境请求标头

我们有几个请求随机发生以下错误:

[Tue Nov 21 05:10:34 2017] [warn] [client XX.XX.XX.XX] mod_fcgid: can't init env request header, referer: https://example.com/
[Tue Nov 21 05:10:34 2017] [warn] [client XX.XX.XX.XX] mod_fcgid: can't build begin or env request, referer: https://example.com/

然后浏览器似乎返回 HTTP 500 错误(见下面的访问日志)。即使从同一浏览器发送相同的请求,我们也无法重现此问题。因此我们怀疑极少数用户似乎发送了导致此问题的特定标头。

在访问日志中,此类失败的请求如下所示:

host.example.com XX.XX.XX.XX - - [21/Nov/2017:05:10:34 +0100] "GET /test.php?xxxxx HTTP/1.1" 500 343 "https://example.com/" "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:57.0) Gecko/20100101 Firefox/57.0"

到目前为止,它们似乎主要来自 Firefox 56 和 Firefox 57 用户。GET 请求相当长,因为 URL 参数大约有 40K。这就是为什么要设置这些选项:

LimitRequestLine 100000
LimitRequestFieldSize 100000
FcgidMaxRequestsPerProcess 3000
FcgidBusyTimeout 900
FcgidIOTimeout 900
FcgidOutputBufferSize 131072
FcgidMaxRequestInMem 524288
FcgidMaxRequestLen 1073741824
FcgidMaxProcesses 30
FcgidMaxProcessesPerClass 30 

不幸的是,关于这个错误的信息不多。有人认为这可能与 mod_security 有关,但这里没有激活。该请求应该转到 PHP 7。

有人知道这是什么原因造成的吗?

我们在 Debian 上使用 Apache 2.2.32。服务器 MPM:Worker

相关内容