服务器使用百度云防护后,一般情况下,网站日志里显示的请求IP应该是百度的回源IP。
但有些用户有特别需求的,需要识别真实访客的IP怎么办?
这其实跟其它CDN识别真用户IP没什么区别,百度云防护也采用了HTTP_X_FORWARDED_FOR HTTP 请求头字段来获取真实访客IP。
当访客请求通过 百度云防护节点时,百度云防护节点会将客户端的真实 IP 地址添加到 HTTP_X_FORWARDED_FOR 字段中,然后转发请求到原始服务器(源站服务器)。
我们需要的做的是在网站程序、web服务器添加获取HTTP_X_FORWARDED_FOR字段的IP。
如nginx可在配置文件添加:
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://backend-server;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
proxy_set_header X-Real-IP $remote_addr;
:将客户端的真实 IP 地址传递给后端服务器。proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
:$proxy_add_x_forwarded_for
是一个内置变量,它会将客户端的X-Forwarded-For
和当前代理服务器的 IP 地址合并。如果客户端请求头中已经存在X-Forwarded-For
,它会将其附加到新的值中。
具体可根据自身web服务器及网站程序语言进行调用,如不懂的可以咨询下AI,这里我们就不多说了。