欢迎来到 岁月小筑

Apache通过X-forwarded-for来记录CDN后客户端IP,并实现封锁

因为本站使用了CDN,所以直接记录日志是无法记录真实IP的,同样,也无法通过iptables封锁IP,经过百度后发现,原来通过X-forwarded-for居然可以看到CDN后客户端的IP,并通过设置,封锁IP

我的apache日志记录设置写在httpd.conf下,如果找不到,可以搜索<IfModule log_config_module>来看看日志设置在哪里

默认情况下log日志格式为:

其中%h 是记录访问者的IP,如果在web的前端有一层代理,那么这个%h其实就是代理机器的IP,这不是我们想要的。在这种情况下,
%{X-FORWARDED-FOR}i  字段会记录客户端真实的IP。所以log日志改为:

成功修改后,service httpd restart重启以便启用新设置,这时就能在log文件中看到客户端的IP了。

然后在网站配置中(我的是在设置vhost目录下的conf文件),假设我要封锁IP:223.5.5.5

这样,再重启httpd就可以了。

点赞

发表评论

电子邮件地址不会被公开。