我的网站在Cloudflare后面运行,这是一个反向代理。这意味着我的访问日志中只会有一个或两个IP地址。
然而,Cloudflare确实在请求头中提供了访问者的IP地址,我认为我可以记录这个IP地址,而不是标准的访问日志中的IP地址。
我知道如何使用CustomLog
,但是否有一种方法可以将HTTP头保存在Apache访问日志中?
谢谢。
我的网站在Cloudflare后面运行,这是一个反向代理。这意味着我的访问日志中只会有一个或两个IP地址。
然而,Cloudflare确实在请求头中提供了访问者的IP地址,我认为我可以记录这个IP地址,而不是标准的访问日志中的IP地址。
我知道如何使用CustomLog
,但是否有一种方法可以将HTTP头保存在Apache访问日志中?
谢谢。
%{Foobar}i
这将使你获得如下信息:
Foobar的内容:已发送到服务器的请求中的标题行。其他模块(例如mod_headers)所做的更改会影响此内容。如果您想知道大多数模块修改请求标头之前的标头是什么,请使用mod_setenvif将标头复制到内部环境变量中,并使用上面描述的%{VARNAME}e记录该值。
因此,通常会添加一些条目,比如“... %{X-Forwarded-For-IP}i”到CustomLog条目中。
将'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