使用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 ...
随机推荐
- LeetCode周赛#208
本周周赛的题面风格与以往不太一样,但不要被吓着,读懂题意跟着模拟,其实会发现并不会难到哪里去. 1599. 经营摩天轮的最大利润 #模拟 题目链接 题意 摩天轮\(4\)个座舱,每个座舱最多可容纳\( ...
- 【mq读书笔记】消息确认(失败消息,定时队列重新消费)
接上文的集群模式,监听器返回RECONSUME_LATER,需要将将这些消息发送给Broker延迟消息.如果发送ack消息失败,将延迟5s后提交线程池进行消费. 入口:ConsumeMessageCo ...
- 不使用 MQ 如何实现 pub/sub 场景?
hello,大家好,我是小黑,又和大家见面啦~~ 在配置中心中,有一个经典的 pub/sub 场景:某个配置项发生变更之后,需要实时的同步到各个服务端节点,同时推送给客户端集群. 在之前实现的简易版配 ...
- VC与VB
VB调用VC dll的返回方式 第一种类型:数值传递注意:在VB中,默认变量传递方式为ByRef为地址,而传递值就是用ByVal,还要注意在C++中,int类型的变量是32位的,在VB中要用long型 ...
- codeforces 1424J,为了过这题,我把祖传的C++都用上了!
大家好,我们选择的是Bubble Cup比赛Div2场次的J题,不用问我Bubble Cup是什么比赛,我也不清楚.总之是一场算法比赛就是了.可能是这个比赛知名度比较低吧,参与的人数也不是很多,我们选 ...
- flask基本使用
一.flask安装以及启动 1.安装 pip install flask 2.开启第一个flask项目 新建文件HelloWord.py from flask import Flask app = F ...
- python3 通过 pybind11 使用Eigen加速代码
python是很容易上手的编程语言,但是有些时候使用python编写的程序并不能保证其运行速度(例如:while 和 for),这个时候我们就需要借助c++等为我们的代码提速.下面是我使用pybind ...
- 第11.21节 Python 中正则表达式的其他扩展功能
一. 引言 在<第11.17节 Python 正则表达式扩展功能:命名组功能及组的反向引用>中老猿介绍了组匹配模式的命名组功能及引用组功能,这两者都是正则表达式的扩展功能,其实在re模块中 ...
- jq中$(function(){})和js中window.onload区别
先看下执行代码: $(function(){ console.log("jq");}) $(function(){ console.log("jq1") ...
- [Python] 快速爬取当前城市所有租房网站房源及配置,一目了然
Python爬取当前城市房源信息,以徐州为例代码效果图请看下方,其他部分请查看附件,一起学习,谢谢 # -*- coding: utf-8 -*- """ @Time : ...