问题起因:

1. 后端PHP的$_SERVER["REMOTE_ADDR"]个别服务器获取不到真实IP

2. iptables 和 悬镜 等工具,设置IP黑名单不起作用

简单点说,请求到服务器要经过,CDN或负载均衡或WAF等,而它们是以代理的方法访问后端服务器

将IP地址,换成它们的IP地址,所以看到的是 代理proxy的IP,有的到达服务器前面的这些软件工具

是可以设置,显地真实IP,比如阿里云的SLB,所以有的是代理的IP,有的是真实的IP

在来了解一个,X-Forwarded-For

X-Forwarded-For 简称XFF头,是一个 HTTP 扩展头部,用来表示 HTTP 请求端真实 IP。现在已经被很多代理软件采用

它使用,比如CDN或负载均衡或WAF后,它会在HTTP头上加一个 X-Forwarded-For

它的格式,X-Forwarded-For: client1, proxy1, proxy2。

所以如果是PHP获取真实IP,XFF的第一个IP来获取真实IP。

至于,iptables 限制IP,不起作用,只能在nginx或者apache上想办法。

1. nginx realip 或者 apache rpaf 的模块来获取真实IP,然后,自己写脚本在 nginx 或者 apache 限制某些 IP 访问。

2. 现在很多的,CDN或负载均衡或WAF等,黑名单接口,可以获取到非法IP然后脚本过滤掉。

by bin

CDN或负载均衡或WAF,后端服务器获取真实IP的更多相关文章

  1. NGINX反向代理,后端服务器获取真实IP

    一般使用中间件做一个反向代理后,后端的web服务器是无法获取到真实的IP地址. 但是生产上,这又是不允许的,那么怎么解决? 1.在NGINX反向代理服务器上进行修改 2.修改后端web服务器配置文件 ...

  2. nginx做反向代理负载均衡 Java怎么获取后端服务器获取用户IP

    nginx做反向负载均衡,后端服务器获取真实客户端ip   首先,在前端nginx上需要做如下配置: location / proxy_set_hearder host                 ...

  3. Nginx负载均衡反向代理 后端Nginx获取客户端真实IP

    Nginx 反向代理后,后端Nginx服务器无法正常获取客户端的真实IP nginx通过http_realip_module模块来实现的这需要重新编译,如果提前编译好了就无需重新编译了1,重新编译ng ...

  4. nginx前端负载,后端apache获取真实IP设置

    原文链接: nginx前端负载,后端apache获取真实IP设置 参考文献: 前端Nginx,后端Apache获取用户真实IP地址  按照第二种方法设置不成功! 网站最前端是nginx,做的PROXY ...

  5. nginx做反向负载均衡,后端服务器获取真实客户端ip(转)

    首先,在前端nginx上需要做如下配置: location / proxy_set_hearder host                $host; proxy_set_header X-forw ...

  6. nginx做反向负载均衡,后端服务器获取真实客户端ip

    首先,在前端nginx上需要做如下配置: location / proxy_set_header host                   $host; proxy_set_header X-fo ...

  7. 【 Tomcat 】后端tomcat获取真实IP

    环境: nginx + tomcat nginx.conf 配置: proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_ad ...

  8. Nginx 反向代理Tomcat服务器获取真实IP问题

    1.nginx.conf 配置 修改 Server location配置 增加 proxy_set_header X-Real-IP $remote_addr; #保留代理之前的真实客户端ip pro ...

  9. 小迪安全 Web安全 基础入门 - 第八天 - 信息打点-系统篇&端口扫描&CDN服务&负载均衡&WAF防火墙

    一.获取网络信息-服务厂商&网络架构 1.通过whois查询获取. 2.nmap.goby等扫描工具扫描获取. 3.https://www.netcraft.com/等网站查询获取. 二.服务 ...

随机推荐

  1. Voyager如何使用Compass

    Compass由Resources,Commands,Logs三个部分组成 Resources包含了Links和Fonts: Commands可以执行php命令,比如创建model: 创建一个Down ...

  2. Markdown中如何添加特殊符号

    符号 说明 编码 符号 说明 编码 符号 说明 编码 " 双引号 " × 乘号 × ← 向左箭头 ← & AND符号 & ÷ 除号 ÷ ↑ 向上箭头 ↑ <  ...

  3. salt 模板

    http://www.mamicode.com/info-detail-2297406.html

  4. How to Install Zabbix Server on Centos6.7

    Prerequisite Environment First you must use your Subscription Manager to enable SCL: [root@fileserve ...

  5. 阿里大鱼短信发送 FOR DT

    //增加了参数$action 来标志发送的是什么短信 注册短信 验证码短信 提示短信等 function send_sms($mobile, $message, $word = 0, $time = ...

  6. Struts2和Spring MVC 区别 今天面试被问到了

    虽然说没有系统的学习过Spring MVC框架, 但是工作这么长时间, 基本上在WEB层使用的都是Spring MVC, 自己觉得Struts2也是一个不错的WEB层框架, 这两种框架至今自己还未有比 ...

  7. vim中,在编辑模式下如何快速移动光标

    编辑 ~/.vimrc 配置文件,加入如下行,编辑模式下自定义的快捷键 inoremap <C-o> <Esc>o  inoremap <C-l> <Righ ...

  8. 多进程 multiprocessing 多线程Threading 线程池和进程池concurrent.futures

    multiprocessing.procsess 定义一个函数 def func():pass 在if __name__=="__main__":中实例化 p = process( ...

  9. Pond Cascade Gym - 101670B 贪心+数学

    题目:题目链接 思路:题目让求最下面池子满的时间和所有池子满的时间,首先我们考虑所有池子满的时间,我们从上到下考虑,因为某些池子满了之后溢出只能往下溢水,考虑当前池子如果注满时间最长,那么从第一个池子 ...

  10. cf 1017C

    C. The Phone Number time limit per test 1 second memory limit per test 256 megabytes input standard ...