记录客户端真实IP
#Nginx示例
log_format  upstream  '$time_iso8601 $http_x_forwarded_for $host $upstream_response_time $request $status $upstream_addr';
#Apache示例
SetEnvIf REMOTE_ADDR "(.+)" CLIENTIP=$1
SetEnvIf X-Forwarded-For "^([0-9.]+)" CLIENTIP=$1
LogFormat "%{CLIENTIP}e %D %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" trueip_combined
#Tomcat示例
https://tomcat.apache.org/tomcat-7.0-doc/api/org/apache/catalina/valves/AccessLogValve.html

#PHP示例

public static String getIpAddr(HttpServletRequest request) {
String ip = request.getHeader(" X-Forwarded-For ");
if (ip == null || ip.length() == 0 || " unknown ".equalsIgnoreCase(ip)) {
ip = request.getHeader(" Proxy-Client-IP ");
}
if (ip == null || ip.length() == 0 || " unknown ".equalsIgnoreCase(ip)) {
ip = request.getHeader(" WL-Proxy-Client-IP ");
}
if (ip == null || ip.length() == 0 || " unknown ".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
return ip;
}

屏蔽客户端真实IP

配置Apache屏蔽某源地址

参考下面的内容修改配置文件:

Order deny, allow

SetEnvIf X-Forwarded-For "^(192\.168\.0\.1)$" deny1

SetEnvIf X-Forwarded-For "^(172\.16\.0\.1)$" deny2

Deny from env=deny1

Deny from env=deny2

“Order deny, allow”的顺序可以根据使用方式自定义。 “SetEnvIf”用来定义一个环境变量。这里将”X-Forwarded-For”字段作为一个变量,并使用了一个正则表达式匹配某IP(192.168.0.1)。 后续的Deny将根据该变量将所匹配IP进行屏蔽。

配置Nginx屏蔽某源地址

参考下面的内容修改配置文件:

set_real_ip_from  10.10.251.0/24;

real_ip_header X-Forwarded-For;

deny 192.168.0.1;

其中”set_real_ip_from”资源的”10.10.251.0/24”IP地址为UCloud北京BGP-C机房的ULB所在网段地址。 nginx会将来源为该网段的”X-Forwarded-For”作为真实IP地址。 deny后面的IP,既为所需要屏蔽的IP地址。

转载于:https://www.cnblogs.com/lixuebin/p/10814390.html

Nginx/Apache/Tomcat记录屏蔽真实IP相关推荐

  1. PHP、Tomcat获取Nginx代理后的客户端真实IP

    PHP.Tomcat获取Nginx代理后的客户端真实IP 文章目录 PHP.Tomcat获取Nginx代理后的客户端真实IP 一.PHP获取Nginx代理后客户端真实IP Nginx配置 PHP配置 ...

  2. nginx反向代理获取用户真实ip

    nginx做反向代理时,默认的配置后端获取到的ip都是来自于nginx,如何转发用户的真实ip到后端程序呢?如是是java后端,用request.getRemoteAddr();获取到的是nginx的 ...

  3. nginx做负载均衡 tomcat获得客户端真实ip

    转 http://www.cnblogs.com/netsa/p/6985990.html 因项目需要做tomcat2台机器的负载均衡,配置好负载环境后,发现tomcat的日志一律是我前置nginx代 ...

  4. nginx获取客户端请求的真实IP

    客户端通过nginx代理访问后端jetty服务器时,后端服务器收到的请求信息中只有nginx代理的IP信息,无法看到client的真实IP, 所以nginx需要获取客户端请求头的真实IP地址进行传递, ...

  5. IIS Nginx Apache Tomcat 中间件漏洞

    简介 中间件(英语:Middleware)是提供系统软件和应用软件之间连接的软件,以便于软件各部件之间的沟通.中间件处在操作系统和更高一级应用程序之间.他充当的功能是:将程序运行环境与操作系统隔离,从 ...

  6. nginx代理后,获取真实IP,做并发访问限制的方法(限流)

    站点在运行时,为了防止DDoS 攻击.或内部接口调用造成的数据迸发,nginx提供了limit限流模块: HttpLimitZoneModule 限制同时并发访问的数量HttpLimitReqModu ...

  7. nginx,apache,tomcat的区别

    nginx与apache 这里说的apche指apache http server ,与nginx都属于http服务器软件,主要处理静态资源. http server关心的是http协议层面的传输和访 ...

  8. 使用nginx代理的情况下获取用户真实IP

    ##1.背景知识 1.1. 前提知识点: 还有nginx中的几个变量: remote_addr 代表客户端的IP,但它的值不是由客户端提供的,而是服务端根据客户端的ip指定的,当你的浏览器访问某个网站 ...

  9. nginx 如何配置来获取用户真实IP

    ##1.背景知识 1.1. 前提知识点: 还有nginx中的几个变量: remote_addr 代表客户端的IP,但它的值不是由客户端提供的,而是服务端根据客户端的ip指定的,当你的浏览器访问某个网站 ...

最新文章

  1. 2018年,这些信息通信技术将大红大紫
  2. windows codeblocks clang 3.7.0
  3. 为GridView添加表头thead
  4. mysql设置自动递增_《MySQL数据库》约束条件和自增长序列
  5. springboot转发http请求_网易后端实习生分享:Springboot异常和错误处理规范
  6. php html转换数组,将html标签转换为php数组
  7. stm32使用stlink烧录后jlik烧不进去_【MCU实战经验】+用stm32单片机做J-Link和ST-Link...
  8. nginx基础概念(100%)之pipe
  9. 运算放大器基本公式_还在被三阶/四阶/运算放大器滤波器PLL这些概念困扰?这篇文章帮你搞懂它...
  10. Firefox 97.0.2 修复两个已遭利用的0day
  11. java 枚举类型enum ppt,java中的枚举类型——Enum
  12. mysql 查询用户权限
  13. ST-link无法下载—— “ access port fault. check the access port selection and ensure it fits the debugging
  14. 杏仁损伤检测器——基于CNN的图像分类
  15. XML特殊符号-五个xml预定义实体
  16. opencv将透明PNG图片填充为白色背景
  17. 联想g400从u盘启动计算机,联想g400怎么从u盘启动-联想g400设置u盘启动方法
  18. PHP实现域名whois查询的代码(数据源万网、新网)
  19. 网络 4.0 防火墙概述
  20. UNIX SIGTERM等信号意义

热门文章

  1. linux cetos7关闭防火墙
  2. flink入门_Flink从入门到放弃-入门篇
  3. python bokeh slider_Bokeh数据可视化工具3视觉增强及服务器
  4. android开启前台服务_Android 知识点必知之ANR与OOM
  5. Python 柱状图 横坐标 名字_Python爬虫实例(二)——爬取新馆疫情每日新增人数
  6. 目标检测(十九)--SoftNMS
  7. 汇编学习--7.13--标志寄存器
  8. 纯新手DSP编程--5.31--DSP/BIOS中的数据交换
  9. PAT (Basic Level) Practice1010 一元多项式求导
  10. scala map方法源码