首页 > 其他 > 详细

CDN 使用百度云,Nginx 负载后端源 ,抓取用户真实IP

时间:2020-03-05 10:47:17      阅读:72      评论:0      收藏:0      [点我收藏+]

描述:因业务原因使用百度CDN ,出现后端源无法抓取用户真实IP,过滤Postman 伪造虚拟IP,默认情况下无法过滤;

用户访问流程:Client---->百度CDN---->Nginx(Tengine)---->.net core (源)

需求:用户直接访问Nginx ,与用户过百度CDN,都要抓取到用户真实IP;

具体配置如下:

1. 百度云CDN配置抓取用户IP ,选择类型使用:Real IP

技术分享图片

 

 

2.安装Nginx(Tengine),这里使用是Tengine2.3.2 版本,支持http_realip_module 模块

 

3. 配置Nginx 日志格式;

 

 

log_format main  $http_x_forwarded_for|$http_x_real_ip|$remote_addr - $remote_user [$time_local] "$request"
                                        $status $body_bytes_sent "$http_referer"
                                        "$http_user_agent" "$http_x_forwarded_for" "$http_x_real_ip"‘;

 

技术分享图片

 

 

4. 配置Server 访问日志,与real_ip ;

server {
         server_name localhost;
                listen 443;
                access_log  /home/logs/nginx/www_logs/web_access.log main;
                error_log  /home/logs/nginx/error.log;
 set_real_ip_from 0.0.0.0/0;
                real_ip_header   X-Real-IP;
                real_ip_recursive on;

技术分享图片

 

 技术分享图片

 

5. 配置 proxy_set_header 转发至后端,此处测试使用 proxy_set_header X-Real-IP $http_x_real_ip,proxy_set_header X-Real-IP $remote_addr ;都有测试,单独或者组合并不能过滤postman 假请求ip ,还会携带CDN 节点ip ;

proxy_http_version 1.1;
proxy_set_header   Upgrade $http_upgrade;
proxy_set_header   Connection keep-alive;
proxy_set_header   Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-For $http_add_x_forwarded_for;

 

 6.由于我们在程序上面做一个单独的测试接口,我们可以抓取用户访问真实IP;

技术分享图片

 

 

 

 

 

 

以上使用百度云 经过多层跳转之后,抓取到的用户真实IP;

 

CDN 使用百度云,Nginx 负载后端源 ,抓取用户真实IP

原文:https://www.cnblogs.com/itusye/p/12418415.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!