![是否有一个 Apache 模块可以以未处理的方式完整记录 HTTP 请求?](https://linux22.com/image/791554/%E6%98%AF%E5%90%A6%E6%9C%89%E4%B8%80%E4%B8%AA%20Apache%20%E6%A8%A1%E5%9D%97%E5%8F%AF%E4%BB%A5%E4%BB%A5%E6%9C%AA%E5%A4%84%E7%90%86%E7%9A%84%E6%96%B9%E5%BC%8F%E5%AE%8C%E6%95%B4%E8%AE%B0%E5%BD%95%20HTTP%20%E8%AF%B7%E6%B1%82%EF%BC%9F.png)
我正在寻找一个能够记录未处理的 HTTP 请求的 RAW 内容的 Apache 模块。以下是一个例子:
POST https://foobar/ HTTP/1.1
Host: foorbar
Connection: keep-alive
Content-Length: 357
...
Accept-Language: en,en-US;q=0.9,de-DE;q=0.8,de;q=0.7
Cookie: sessiontid=....
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> ... </s:Envelope>
到目前为止我已经尝试过:
- apache内置日志:只能记录一些特定的HTTP标头(自定义格式指定的标头)。
mod_log_forensic
+mod_unique_id
:它会转储所有 HTTP 标头,但不会转储正文/POST 数据。在上面的示例中,会记录所有 HTTP 标头,但不会记录 SOAP 信封。一个很棒的功能是能够使用唯一 ID 将这些日志与常规 apache 日志链接起来。mod_dumpio
:它只会将 POST 数据转储到 error.log,这种方式不太友好(每个请求多行,全部用附加信息修饰)。此外,没有办法将该信息与唯一 ID 绑定。mod_dumpost
:比 dumpio 更好,因为它将所有内容记录在一行中,而无需用额外数据进行修饰。不过,它不支持唯一 ID。因此很难将该信息与 HTTP 标头(记录在不同位置)进行匹配。