使用nginx后让tomcat的localhost_access_log获得真实IP

配置nginx

在location节点下面加入如下代码

proxy_set_header Host $host;
proxy_set_header X-Real-IP  $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;


修改tomcat的server.xml配置文件

找到如下配置

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
      prefix="localhost_access_log." suffix=".txt"
      pattern="%h %l %u %t &quot;%r&quot; %s %b" />

修改成如下即可

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
      prefix="localhost_access_log." suffix=".txt"
      pattern="%{X-Real-IP}i %l %u %t &quot;%r&quot; %s %b" />
时间: 2024-09-04 22:44:05

使用nginx后让tomcat的localhost_access_log获得真实IP的相关文章

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

原文链接: nginx前端负载,后端apache获取真实IP设置 参考文献: 前端Nginx,后端Apache获取用户真实IP地址  按照第二种方法设置不成功! 网站最前端是nginx,做的PROXY来转发请求到后端的apache上,所以获取的IP 都是NGINX PROXY 机器的IP,这对于分析和记录apache日志等很多基于IP判断的PHP程序都会出现一系列的问题,经过以下两处理便可让apache获取 正式的访问地址:1.修改NGINX的配置文件NGINX.CONF 在里面加上 proxy

Nginx反向代理+Tomcat+Springmvc获取用户访问ip

Nginx+Tomcat+Springmvc获取用户访问ip 1.Nginx反向代理 修改Nginx配置文件 location / { ***********之前代码*******; proxy_set_header host $host; proxy_set_header X-forwarded-for $proxy_add_x_forwarded_for;//设置代理服务器ip头,代码获取时的参数 proxy_set_header X-Real-IP $remote_addr; //允许将发

【tomcat】获取访问者真实IP

1.直接访问tomcat的情况 通过下面这段代码可以获取: 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() =

Nginx多层反向代理透传客户端真实IP

Nginx的反向代理能非常强大,可以配置多层反向代理,多层代理中最关心的就是客户端IP的信息传递情况,当我们遇到问题后,分析日志是解决问题最有效的途径之一,涉及代理时我们肯定会分析源IP,目标IP等信息,查看相关的异常.本次实例就通过两层Nginx反向代理,模拟一下其客户端IP的传递信息. 实验环境: 操作系统 : Centos 7.X Nginx :   nginx1.12 序号 环境名称 IP地址 环境介绍 1 访问客户端1 10.57.3.29 mac  有Chrome等浏览器 2 访问客

Tomcat中获取客户端真实IP及协议

获取客户端真实IP ServletRequest接口提供了getRemoteAddr方法用于获取客户端IP,但是当客户端通过代理服务器访问后端服务器的时候,服务器调用getRemoteAddr方法会返回最近的代理服务器的IP而非客户端真实IP.这种情况下通常是使用X-Forwarded-For请求头来获取客户端真实IP. X-Forwarded-For简称XFF头,它保存了客户端和各级代理服务器的IP,只有在通过了HTTP正向代理服务器或者反向代理服务器时才会添加该项,一般格式如下:X-Forw

nginx负载均衡后端RS中获取真实ip

前端proxy配置 #################### worker_processes  1; events { worker_connections  1024; } http { include       mime.types; default_type  application/octet-stream; sendfile        on; keepalive_timeout  65; upstream backend { server 10.0.0.3:80    max_

tomcat程序记录客户端真实IP

需求: 开发告知:让后端tomcat日志获取真实的IP,而不是nginx 服务器的IP tomcat前面是nginx做的反向代理,所以tomcat取到的是nginx的ip. 日志名称是localhost_access_log.txt 其实解决这个问题,只需要修改两个地方: 1.修改nginx的配置文件 在server或者location中添加 proxy_set_header X-Forwarded-For $remote_addr; 2.修改tomcat配置文件 修改server.xml文件,

haproxy,tomcat.apache记录用户真实IP

Haproxy配置: default加入: option httpclose option forwardfor Tomcat配置: server.xml中添加 prefix="localhost_access_log." suffix=".txt" pattern="%{X-FORWARDED-FOR}i %l %u %t %r %s %b %D %q %{User-Agent}i %T" resolveHosts="false&qu

Tomcat集群session复制,httpd/nginx反代Tomcat集群

   一个大型站点都会涉及到动态应用,动态应用都需要做会话保持,常见的会话保持方式就三种,一是session stick,二是session replication,三是session share,对于小型规模的tomcat集群,大多者会采用session replication方式,但阅读官方文档也好,查询大牛博客也罢,发现均有不准确之处,所以亲测成功实现之后得出如下文档,还望高人指点. 实验环境: 操作系统:CentOS 7.2 tomcat版本:tomcat-7.0.54(yum安装方式)