1、背景:阿里云的SLB的负载均衡,在tomcat中获取不到真实IP,而是阿里的内网IP,SLB中俩台或者3台本身是局域网,这里是SLB原理,可以看看,没怎么看懂,呵呵,要细细读下。

2、需要开启tomcat的X-Forwarded-For,在tomcat/conf/server.xml中有一个如下的AccessLogValve 日志纪录功能,当配置中的pattern=common时,对应的日志是如下,无论正常请求和非法请求都会记录。

        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"  prefix="localhost_access_log." suffix=".txt" pattern='commont' resolveHosts="false"/>

3、修改pattern为pattern='%{X-Forwarded-For}i %h %l %u %t "%r" %s %b',则会记录headers头中的X-Forwarded-For信息,可以使用 fiddle抓取到X-Forwarded-For信息

4、获取tomcat中的X-Forwarded-For,前提阿里云需要开启获取真实IP如下图:

5、Java代码获取X-Forwarded-For

 /*** 获取ip地址,防止集群、代理* @param request * @return ip*/public static String getAddr(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;}

阿里云X-Forwarded-For 发现tomcat记录的日志全部来自于SLB转发的IP地址,不能获取到请求的真实IP。相关推荐

  1. 如何在阿里云上搭建个人网站(学习记录)

    如何在阿里云上搭建个人网站(学习记录) 第一次写博客记录学习的过程,不仅可以巩固学习知识,也方便日后复习.并且可以记录自己的成长. 先购买阿里ECS云服务器 购买网站https://promotion ...

  2. tomcat记录访问日志

    一般的web server有两部分日志: 一是运行的日志,它主要肌瘤运行的一些信息,尤其是一些异常错误日志信息 二是访问日志信息,他是记录的访问的时间,ip,url,sessionId等信息. 下面来 ...

  3. idea tomcat项目部署失败_阿里云centons安装Jdk和tomcat,mysql以及项目部署(阿里云入门)...

    买了个阿里云ECS服务器,自己摸索安装,适合小白看看,教程该做的都有列出来. 1.购买服务器 2.查看阿里云管理 点击实例进入 修改密码可以点击管理--出现的页面点击更多---重置实例密码 3.下载x ...

  4. 阿里云ECS,Ubuntu系统Tomcat搭建

    今天,花了一天的时间去搭建服务器,有一点心得体验我这里记录下来方便以后的查看. – tomcat版本:tomcat 9.0.0M20 1,我把这个tomcat通过wget下载到服务器中后,解压运行后, ...

  5. ecs安装tomcat和mysql_centos(Linux)系统阿里云ECS搭建 jdk,tomcat和MySQL环境,并部署web程序...

    之前我对这个东西一无所知,攻击力为0,谢谢各个论坛上面的兄弟们的帮助. 过程: 首先ssh远程登陆: ssh root@你的公网ip ,输入密码 1,jdk我用的版本是jdk-7u80-linux-x ...

  6. 阿里云win2016服务器部署jdk+tomcat填坑

    这里写目录标题 win2016 Server上部署web服务 服务器上安装oppenSSH 目的 过程 错误 服务器上安装tomcat 目的 过程 win2016 Server上部署web服务 服务器 ...

  7. 在阿里云ECS服务器上搭建tomcat

    我购买的ECS安装的是 centos7版本的Linux系统,在网上查了一会资料搞定了,记录一下:  1.远程连接ECS  我用的是window操作系统,每次使用控制台去连接我的ECS显得非常的不方便, ...

  8. 阿里云数据盘扩容操作遇险记录

    阿里云数据盘扩容操作记录 阿里云数据盘40G的容量已经用了37G了,不扩容的话,肯定是不行了.于是开始准备扩容. 但是之前没有做过这样的操作.心中有点怕怕的,如果数据丢了可咋整. 不管,先创建一个快照 ...

  9. 阿里云docker安装nginx和tomcat

    第一步: docker pull nginx 可以看到docker的联合文件系统,分层pull 接着敲命令: docker images 查看docker镜像,可以看到nginx 第二步: 启动ngi ...

最新文章

  1. 【网络安全】如何使用keimpx检测网络环境中的有效凭证
  2. 老郭的《Dalvik虚拟机垃圾收集机制简要介绍和学习计划》
  3. java编译命令 Linux,通过命令行在linux中编译Java类
  4. java取当前日期_java如何获取系统的当前时间
  5. “腾讯也感受到危机了!”
  6. 内网服务器putty到天翼云,SSH隧道管理内部服务(putty,ssh secure shell)for win
  7. 《机器学习》周志华note2
  8. Oracle Solaris系统,诺禾
  9. 蓝桥杯第八届等差素数列
  10. vue两列数据 合并成一列
  11. 最全的Gateway统一网关快速入门
  12. Spring Boot 实现通用 Auth 认证的 4 种方式!
  13. 区分Internet和Local数据流的Qos实现
  14. 信号的用法,signal函数、sigaction函数及信号集(sigemptyset,sigaddset)操作函数
  15. 浏览器最小字体为12px以及解决方法
  16. Oracle常用函数汇总记录
  17. 分享丨终于有人把云计算、大数据和人工智能讲明白了!
  18. 杜有福 c语言 第三版,C语言程序设计习题答案 杜有福.doc
  19. 画论62 徐沁《明画录》
  20. MySQL查询为什么没走索引?这篇文章带你全面解析

热门文章

  1. 外汇里面马丁格尔交易系统的交易原理是什么?(汇友必入区)
  2. 无法启动计算机的杀毒软件,电脑中毒无法启动 卡巴斯基可解危难
  3. MIMO信道的稀疏性
  4. 2022-2027年中国摄像头市场规模现状及投资规划建议报告
  5. 注册表删除计算机用户密码,不小心把电脑原本一直用的账户删除了,现在新建了账户,没权限。管理员密码我不知道...
  6. nginx 配置登陆密码
  7. 搭建自己的在线作图工具
  8. 21考研复旦被刷调剂中科院上岸经验贴
  9. Google谷歌,Baidu百度,迅雷狗狗 等搜索引擎 调用源代码
  10. 电脑还原数据丢失的解决技巧