解决Apache网站套用Cloudflare CDN以后日志IP为CDN的IP

其他内容

本文最后更新于 2020年6月30日   请注意相关内容可能已过时

一般来说网站套用CDN以后是比没套比较好的,但是套了CDN之后,网站日志里面查看访客IP的时候发现IP全是CDN的回源IP。

以本站Apache为例,需要修改一下apache的配置文件来恢复日志里面记录访客IP。

1、修改这个路劲的配置文件

/www/server/apache/conf/extra/httpd-remoteip.conf

添加下面两个参数

RemoteIPHeader X-Forwarded-For
RemoteIPProxiesHeader X-Forwarded-By

2、
编辑 httpd.conf 配置文件
先确认 httpd.conf 里已设置加载 mod_remoteip 模块,参数如下。

LoadModule remoteip_module modules/mod_remoteip.so

(也就是该行命令以前没有注释符号,一般为“#”)
在其下面添加一句,以链接上步创建的 mod_remoteip 配置文件。

Include conf/extra/httpd-remoteip.conf

再在文件里修改记录日志格式,使之记录访客 IP。搜索下面两行内容。

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common

将里面的 %h 改为 %a ,修改后的内容如下。

LogFormat "%a %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%a %l %u %t \"%r\" %>s %b" common

保存文件修改,

/etc/init.d/httpd restart

重启服务生效。

注:nginx恢复后台日志为访客IP的方法更多更简单,网上搜索即可,这里就不多赘述。

发表评论

邮箱地址不会被公开。 必填项已用*标注