使用CDN后如何获取真实用户IP

源程序如何获取客户端真实IP

CDN默认给源服务器发送了两个请求头,X-Real-IP和X-Forwarded-For,这两个请求头都带有客户端的真实IP。
源程序在不配置的情况下,默认获取到的是节点IP,下面有两种方法来获取真实客户端IP

配置宝塔Nginx,不用修改网站程序

未配置前:

其中106.55.151.50是节点IP
开始配置:
在配置文件里,增加

    set_real_ip_from  0.0.0.0/0;
    real_ip_header    X-Forwarded-For;
如图:


配置后,访问日志里显示真实IP了

修改网站程序

如果是php程序,就使用如下代码获取真实IP

$realIP = $_SERVER['HTTP_X_REAL_IP'];

即从X-Real-IP请求头获取