Nginx反向代理时tomcat日志获取真实IP

对于nginx+tomcat这种架构,如果后端tomcat配置保持默认,那么tomcat的访问日志里,记录的就是前端nginx的IP地址,而不是真实的访问IP。因此,需要对nginx、tomcat做如下配置:

1、nginx配置增加如下

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

2、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-Forwarded-For}i %l %u %t &quot;%r&quot; %s %b" />

完成,此时去tomcat的localhost_access_log文件里验证结果。

参考资料:http://www.cnblogs.com/mumuxinfei/p/5194228.html

时间: 2024-10-10 13:35:47

Nginx反向代理时tomcat日志获取真实IP的相关文章

nginx反向代理tomcat日志获取真实IP

今天测试一下nginx反向代理功能时,让tomcat日志里获取用户真实IP地址,谷歌了一下,都是一篇文章的内容,复制了tomcat配置文件中的要修改的内容,可怎么也获取不到,神奇了就!无奈之下,仔细读每行复制的内容,发现问题了,估计都要是搜索到那篇文章的话,都得无法获取真实IP地址,就一个小小的地方.开始检查配置内容: (1)nigix  nginx.conf配置文件中: proxy_set_header  Host $host; proxy_set_header  X-Real-IP $rem

nginx 反向代理时丢失端口的解决方案

今天,配置nginx反向代理时遇到一个问题,当设置nginx监听80端口时转发请求没有问题.但一旦设置为监听其他端口,就一直跳转不正常:如,访问欢迎页面时应该是重定向到登录页面,在这个重定向的过程中端口丢失了. 这里给出一个简短的解决方案,修改nginx的配置文件. 一.配置文件 # the 90 port server { listen 90; server_name zxy1994.cn; proxy_set_header X-Forwarded-Host $host; proxy_set_

nginx 反向代理时丢失端口的解决方案(转)

今天,配置nginx反向代理时遇到一个问题,当设置nginx监听80端口时转发请求没有问题.但一旦设置为监听其他端口,就一直跳转不正常:如,访问欢迎页面时应该是重定向到登录页面,在这个重定向的过程中端口丢失了. 这里给出一个简短的解决方案,修改nginx的配置文件. 一.配置文件 # the 90 port server { listen 90; server_name zxy1994.cn; proxy_set_header X-Forwarded-Host $host; proxy_set_

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反向代理时,如何正确获取到用户的真实ip

在记录日志的的时候,获取用户的信息,比如用户的ip,浏览器等等信息是十分重要的. 但是在使用nginx反向代理的时候,可能经过转发无法获取到用户的真实的ip, 在此情况下需要配置nginx,让其在转发的时候在header 带上用户的真实的ip. 举个例子: server { listen 80; server_name xxx.lenny.net; root D:\soft\nginx-1.11.4\html; index index.php index.html index.htm; add_

nginx反向代理及tomcat负载均衡

 tomcat服务器及负载均衡 1:tomcat主要用于web网页应用,它的静态处理能力低于nginx服务器, 但是可以当做容器主要用于JAVA程序编写的页面.jsp.用于测试. 2:可以实现负载均衡,反向代理,tomcat和其他的服务相比较,性价比高 另外tomcat是有apache基金会维护和支持 3:根据案例搭建tomcat服务器,以及实现负载均衡   一..实施准备 1.启动后关闭iptables防火墙 #service iptables stop 2.安装jdk.配置java环境 (1

nginx反向代理(proxy_pass)tomcat的过程中,session失效的问题解决

Nginx反向代理tomcat,很是方便,但是也有些细节的问题需要注意:今天遇到了这样一个问题,tomcat中路径“host/web1”,nginx中直接“host/”代理,这时候session就无法正常进行了. 1 2 3 4 5 6 7 8 9 location / {             proxy_pass   http://192.168.1.12:11080/v1/;                      proxy_set_header   Host    $host;  

Centos6.5系统下nginx反向代理实现tomcat负载均衡

查看当前系统的内核和系统参数以及版本. [[email protected] ~]# uname -a Linux node1 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux [[email protected] ~]# cat /etc/issue CentOS release 6.5 (Final) Kernel \r on an \m 2.安装nginx. 1)

nginx反向代理后端web服务器记录客户端ip地址

nginx在做反向代理的时候,后端的nginx web服务器log中记录的地址都是反向代理服务器的地址,无法查看客户端访问的真实ip. 在反向代理服务器的nginx.conf配置文件中进行配置. location /bbs { proxy_pass http://192.168.214.131/bbs; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarde