Matomo 使用 CDN 后无法正确获取访客 Client 真实 IP

最近在查看 matomo 后台访问日志时发现Matomo后台显示的访客IP和实际的Client IP不一致。
通过直接访问该IP,发现该IP竟然会返回 404 状态码,然后去腾讯云CDN控制台使用IP归属查询工具,发现该IP是腾讯云的CDN节点IP。为了保证统计网站访问速度,所以使用了CDN服务。

前往腾讯云CDN控制台查看该域名的回源设置,发现已经设置了Tencent-Acceleration-Domain-Name参数,Tencent-Acceleration-Domain-Name 参数会自动携带X-Forwarded-For and X-Forwarded-Proto参数回源。

理论来说,配置该参数之后可以正常获取Client IP信息,但是在 matomo 并未生效。

Matomo 使用 CDN 后无法正确获取访客 Client 真实 IP插图2

从答案得知,需要修改 Nginx 主配置文件,并添加real_ip_recursive指令。

real_ip_header X-Forwarded-For;
real_ip_recursive on;
set_real_ip_from 0.0.0.0/0;
set_real_ip_from ::/0;

set_real_ip_from需要使用CIDR表示法,0.0.0.0/0代表匹配所有 IPv4 地址,::/0或者0::0/0代表匹配所有 IPv6 地址。

将以上配置内容添加至 Nginx 主配置文件下的http字段内保存并重启 Nginx 即可正常获取Client IP。

此时测试 Client IP 获取与本机 IP 一致,问题解决!

版权声明
本站所发布的一切源码、模板、应用、文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如有侵权请邮件与我们联系处理。本站内容适用于DMCA政策。
Last modification:September 20th, 2024 at 10:30 pm

Leave a Comment