【问题标题】:Log an HTTP Header in Apache2 Access Logs在 Apache2 访问日志中记录 HTTP 标头
【发布时间】:2012-08-28 05:33:28
【问题描述】:

我有一个在 Cloudflare 后面运行的网站,它是一个反向代理。这意味着我在访问日志中只能获得一两个 IP 地址。

但是,Cloudflare 确实在请求标头中提供了访问者 IP 地址,我假设我可以在访问日志中记录而不是标准地址。

我知道如何使用CustomLog,但是有没有办法在 Apache 访问日志中保存 HTTP 标头?

谢谢。

【问题讨论】:

    标签: apache logging http-headers


    【解决方案1】:

    是的 - 看看文档 - http://httpd.apache.org/docs/2.2/mod/mod_log_config.html 特别是

    的条目
    %{Foobar}i  
    

    这会让你受益:

    Foobar 的内容:发送到请求中的标题行 服务器。其他模块(例如 mod_headers)所做的更改会影响这一点。 如果您对请求标头在大多数时间之前的内容感兴趣 模块会修改它,使用 mod_setenvif 复制标题 进入内部环境变量并使用 %{VARNAME}e 如上所述。

    因此,通常会在 CustomLog 条目中添加一些条目,例如“... %{X-Forwarded-For-IP}i”。

    将 'X-Forwarded-For-IP' 替换为您的 cloudflare 服务为您提供的任何内容(通常类似于 ''"CF-Connecting-IP"'');例如

     LogFormat "%v %{CF-Connecting-IP}i (via cloudflare:%h) %l %u %t \"%r\" %>s %b" cloudflare
     CustomLog "|rotatelog.. etc" cloudflare
    

    关于“传输日志”——请参阅 TransferLog 指令附近的注释——它会选择最新定义的版本。

    Dw.

    【讨论】:

      猜你喜欢
      • 2017-10-02
      • 1970-01-01
      • 2021-04-22
      • 2017-12-23
      • 2014-06-13
      • 1970-01-01
      • 2012-02-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多