使用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 ...
随机推荐
- Ajax Status(状态码) & readyState()
Ajax Status & readyState readyState(状态值) 是指运行AJAX所经历过的几种状态,论访问是否成功都将响应的步骤,可以理解成为AJAX运行步骤,使用" ...
- golang 自学系列(四)——debug for vscode
golang 自学系列(四)--(调试)VSCode For Debug 这里如何装 vscode 我就不说了 这里如何在 vscode 正常写代码我也不说了 在能正常用 vscode 写 go 语言 ...
- Python使用property函数和使用@property装饰器定义属性访问方法的异同点分析
Python使用property函数和使用@property装饰器都能定义属性的get.set及delete的访问方法,他们的相同点主要如下三点: 1.定义这些方法后,代码中对相关属性的访问实际上都会 ...
- 第14.10节 Python中使用BeautifulSoup解析http报文:html标签相关属性的访问
一. 引言 在<第14.8节 Python中使用BeautifulSoup加载HTML报文>中介绍使用BeautifulSoup的安装.导入和创建对象的过程,本节介绍导入后利用Beauti ...
- 第 4篇 Scrum 冲刺博客
一.站立式会议 1.站立式会议照片 2.昨天已完成的工作 登录信息的匹配 3.今天计划完成的工作 ①售货员页面功能 ②销售排行 4.工作中遇到的困难 ①页面按钮太过复杂,逻辑错乱 ②有的同学数据库驱动 ...
- web前端页面常见优化方法
(1)减少http请求,尽量减少向服务器的请求数量 (2)避免重定向 (3)利用缓存:使用外联式引用CSS.JS,在实际应用中使用外部文件可以提高页面速度,因为JavaScript和CSS文件都能在浏 ...
- JavaScript异步编程的四种方法
1.回调函数 f1(f2); 回调函数是异步编程的基本方法.其优点是易编写.易理解和易部署:缺点是不利于代码的阅读和维护,各个部分之间高度耦合 (Coupling),流程比较混乱,而且每个任务只能指定 ...
- 题解-CTS2019 珍珠
题面 CTS2019 珍珠 有 \(n\) 个在 \([1,d]\) 内的整数,求使可以拿出 \(2m\) 个整数凑成 \(m\) 个相等的整数对的方案数. 数据范围:\(0\le m\le 10^9 ...
- AcWing 392. 会合
一个思路不难,但是实现起来有点毒瘤的题. 显然题目给出的是基环树(内向树)森林. 把每一个基环抠出来. 大力分类讨论: 若 \(a, b\) 不在一个联通量里,显然是 \(-1, -1\) 若 \(a ...
- uni-app开发中的各种问题处理
特别注意: ※:在components下的组件,图片路径用 /static/img/back.png 这样的根路径形式,不要用../static 或者 ../../static 的形式,不然很坑, ...