使用CDN后如何配置Apache使其记录访客真实IP
今天想看看哪些地区的人访问过我的网站,于是打开Apache网站响应日志,把访客IP复制到百度,发现搜到的全部都是我是用的CDN的节点IP,真实的访客IP并没有被记录。

如图所示,上面的103.45.78.85还有58、122段全部都是CDN节点的IP,真实访问者的IP一个都没有记录下来。
一、调试
于是获取了一下服务器接收到的请求头,新建一个request.php文件放到网站根目录,内容如下:
然后访问https://wuter.cn/request.php,出现了下面这个错误。

根据内容大概能判断是因为apache_request_headers()这个函数没有被定义,但是php手册说是支持这个函数的。

没办法,既然没定义那就在调用之前定义一下,已经php是世界上最好的编程语言(梗)。
定义如下:
二、解决方法
这时访问https://wuter.cn/request.php已经能够成功显示请求头了,复制如下:
Accept-Language: zh-CN,zh;q=0.9
X-Forwarded-For: 171.43.251.197
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36
X-Edge-Retry-Times: -
Cookie: __cfduid=d31ec109277e7f67c282c6336c8a83a3b1597994775; mp_a36067b00a263cce0299cfd960e26ecf_mixpanel=%7B%22distinct_id%22%3A%20%221743aa1b561296-022e8eee62b6b5-376b4502-1fa400-1743aa1b5628a0%22%2C%22%24device_id%22%3A%20%221743aa1b561296-022e8eee62b6b5-376b4502-1fa400-1743aa1b5628a0%22%2C%22%24initial_referrer%22%3A%20%22https%3A%2F%2Fwuter.cn%2Fwp-admin%2Fedit.php%22%2C%22%24initial_referring_domain%22%3A%20%22wuter.cn%22%7D; wordpress_test_cookie=WP+Cookie+check; wordpress_logged_in_4b895119d7c61df7bd4d354ad8fcdfdc=admin%7C1599035914%7CTnFr34eVmo45MRlZ9QD8IpGwOF9yaQBTvNWFxXvsm36%7Cf0b77a434e8a2fc726a517dff72e27ea96bb2a591c1466be5e50a79bfd1b72e7; wp-settings-1=libraryContent%3Dbrowse%26mfold%3Do%26cats%3Dpop; wp-settings-time-1=1598863115
Sec-Fetch-Mode: navigate
Client-Ip: 171.43.251.197
X-Via: shanks/0.10.18
Sec-Fetch-Site: same-origin
If-None-Match:
X-Request-Id: e7414229e9435c528a4ec3a8df091b1f
Upgrade-Insecure-Requests: 1
X-Real-Ip: 171.43.251.197
Sec-Fetch-User: ?1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
X-Route-Via: V.mix-js-czx2-048, S.mix-js-czx2-046
Host: wuter.cn
发现其中 X-Forwarded-For: 171.43.251.197 记录的就是我的真实IP,所以把这个添加到 Apache的配置文件http.conf 。搜索logformat找到下面这行.
将其改为:
三、测试
现在访问日志已经可以同时记载访客真实IP和给访客提供服务的CDN节点IP。

备注:如果访客使用代理访问,可能无法获取真实地址。
使用CDN后如何配置Apache使其记录访客真实IP的更多相关文章
- NGINX配置获取CloudFlare 下的访客真实IP并记录到日志
我用的是lnmp.org的环境 /usr/local/nginx/conf/nginx.conf 在 http { } 部分增加 map $HTTP_CF_CONNECTING_IP $clientR ...
- 安装mod_rpaf让apache获取访客真实IP
安装mod_rpaf让apache获取访客真实IP 安装mod_rpaf让apache获取访客真实IP 作者:朱 茂海 /分类:Apache 字号:L M S mod_rpaf是apache ...
- CDN或负载均衡或WAF,后端服务器获取真实IP
问题起因: 1. 后端PHP的$_SERVER["REMOTE_ADDR"]个别服务器获取不到真实IP 2. iptables 和 悬镜 等工具,设置IP黑名单不起作用 简单点说, ...
- 查找“CDN、负载均衡、反向代理”等大型网络真实IP地址的方法
首先,CDN.负载均衡.反向代理还分为很多层,有时查出来的是最外层的 CDN 服务器群,真实的机器是不对外开放的,类似这样的: 用户 → CDN 网络 → 一台或多台真实机器 ↗ CDN Server ...
- 配置apache使之支持浏览器端的缓存
当直接在浏览器中输入一个URL,或者点击一个链接的时候,那么浏览器缓存就会起作用,如果缓存没有过期,那么浏览器会从本地读取资源,不会发起HTTP请求,如果缓存过期,那么浏览器会发起新的浏览器请求. 一 ...
- 全部用startssl生成的证书,配置Apache使其支持SSL
Apache的编译安装见这篇: http://www.cnblogs.com/yjken/p/3921840.html 网上查阅了一大批资料,得知自己生成的证书是会被浏览器提示“证书不安全”的,我也就 ...
- zend studio 配置 apache服务器事宜
安装好 zend studio后,配置 apache服务器时,设置 configuration directory时,需选中 xampp\apache里面的 conf 文件夹,即完整的路径为: *\x ...
- Mac OS X 10.10 Yosemite下配置 apache+php
自从系统从OS X Mavericks 10.9升级到OS X Yosemite 10.10 后之前配置apache和php均不能正常使用了, 重新设置配置如下: 首先,查看当前系统的apache版本 ...
- Mac 10.10 配置apache
配置php 命令行工具:http://blog.csdn.net/evane1890/article/details/38759073 自从系统从OS X Mavericks 10.9升级到OS X ...
随机推荐
- Java基础教程——数组
数组 Java数组:用于存储同一种数据类型的多个数据. Java数组本身是一种数据类型--引用类型. 类(String.Scanner等大写字母开头的类型)也属于引用类型,int.double等基本类 ...
- 03-Python里字符串的常用操作方法二
1.lstrip():删除左侧空白字符 实例: my_str = ' hello world and my and test and python ' # 原始字符串 print(my_str) # ...
- MiniProfiler性能监控分析工具在.NET项目中的使用
MiniProfiler是一款针对.NET, Ruby, Go and Node.js的性能分析的轻量级程序.可以对一个页面本身,及该页面通过直接引用.Ajax.Iframe形式访问的其它页面进行监控 ...
- 基于gin的golang web开发:Gin技术拾遗
本文是对前几篇文章的一些补充,主要包含两部分:单元测试和实际项目中使用路由的小问题. 拾遗1:单元测试 Golang单元测试要求代码文件以_test结尾,单元测试方法以Test开头,参数为*testi ...
- pandas入门使用
一.pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主要目的是为了数据分析.它提供了大量高级的数据结构和对数据处理的方法. pandas 有两个主要的数据结构 ...
- PyQt(Python+Qt)学习随笔:QMdiArea多文档界面区域的viewMode、documentMode、tabsClosable、tabPosition等属性介绍
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 viewMode属性用于控制子窗口是使用子窗口模式(QMdiArea. ...
- Scrum 冲刺第七天
一.每日站立式会议 1.会议内容 1)进行每日工作汇报 张博愉: 昨天已完成的工作:与林梓琦同学完成发帖模块的交接 今日工作计划:完善发帖模块的点赞.上传图片功能 工作中遇到的困难:Mybatis的一 ...
- javascript常用继承方式.
//原型链继承 function Parent() { this.name = 'per'; } function Child() { this.age = 20; } Child.prototy ...
- 密码学系列之:明文攻击和Bletchley Park
目录 简介 crib和明文攻击 布莱奇利公园(Bletchley Park) 简介 明文攻击就是指已经知道了部分明文和它对应的加密后的字段,从而可以推测出使用的加密手段或者密码本.明文攻击这个故事还要 ...
- 【补题记录】ZJU-ICPC Summer Training 2020 部分补题记录
补题地址:https://zjusummer.contest.codeforces.com/ Contents ZJU-ICPC Summer 2020 Contest 1 by Group A Pr ...