tomcat 获取真实ip地址

tomcat日志记录nginx的真实ip

1、在nginx.conf设置如下

http {

  set_real_ip_from 10.168.38.0/24;    #通过该指令指定信任的地址,将会被替代为精确的IP地址

  real_ip_header X-Forwarded-For;      #这个指令用于设置使用哪个头来替换IP地址。如果使用了X-Forwarded-For,那么该模块将会使用X-Forwarded-For头中的最后一个IP地址来替换前端代理的IP地址。

  }

location / {

  proxy_pass http://test/wdzj/;
  proxy_set_header Host $host:$server_port;
  proxy_set_header REMOTE-HOST $remote_addr;

  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  #如果没有跳转机,这一段替换为proxy_set_header X-Real-IP $remote_addr;

  }

2、修改tomcat配置文件server.xml

<HOST>

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log." suffix=".txt"
               pattern="%{X-Forwarded-For}i %h %l %u %t %r %s %b %{Referer}i %{User-Agent}i" resolveHosts="false" />     #注意如果前端没有nginx跳转的话,将X-Forwarded-For替换成X-Real-IP

</HOST>

查看 tomcat log/localhost_access_log.txt内容如下


%a


这是记录访问者的IP,在日志里是127.0.0.1


%A


这是记录本地服务器的IP,在日志里是192.168.254.108


%b


这是发送信息的字节数,不涵括http头,如果字节数为0的话,显示为-


%B


看tomcat的解释,没看出来与b%的区别,但我这里显示为-1,没想明白,望知道者告知,我把官方解释贴出来吧 Bytes sent, excluding HTTP headers


%h


这个就是服务器名称了,如果resolveHosts为false的话,这里就是IP地址了,我的日志里是127.0.0.1


%H


访问者使用的协议,这里是HTTP/1.1


%l


这个也不太清楚,官方也说这个always return ‘-‘ 官方解释:Remote logical username from identd (可能这样翻译:记录浏览者进行身份验证时提供的名字)(always returns ‘-‘)


%m


访问的方式,是GET还是POST,我这是GET


%p


本地接收访问的端口,呵呵,我这里是80啦


%q


比如你访问的是aaa.jsp?bbb=ccc,那么这里就显示?bbb=ccc,明白了吧,这个q是querystring的意思


%r


官方解释:First line of the request (method and request URI),不是很明白


%s


这个是http的状态,我这里返回的是304,咱们经常看见访问某个网页报错误500什么的,那也会返回500


%S


用户的session ID,这个session ID大家可以另外查一下详细的解释,反正每次都会生成不同的session ID


%t


这就是时间啦,好像有一个Common Log Format可以改,不过我没找到


%u


得到了验证的访问者,否则就是"-"


%U


访问的URL地址,我这里是/rightmainima/leftbott4.swf


%v


服务器名称,可能就是你url里面写的那个吧,我这里是localhost


%D


官方解释:Time taken to process the request, in millis,应该是访问发生的时间,以毫秒记


%T


官方解释:Time taken to process the request, in seconds,应该是访问发生的时间,以秒记

时间: 2024-07-29 03:03:45

tomcat 获取真实ip地址的相关文章

获取请求主机IP地址,如果通过代理进来,则透过防火墙获取真实IP地址

/** * 获取请求主机IP地址,如果通过代理进来,则透过防火墙获取真实IP地址; * @Title: getIpAddress * @Description: TODO(这里用一句话描述这个方法的作用) * @param @param request * @param @return * @param @throws IOException 参数 * @return String 返回类型 * @throws */ public String getIpAddress(HttpServletR

【转载】JSP 获取真实IP地址的代码

JSP 获取真实IP地址的代码 在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的. 但是在通过了 Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了.如果使用了反向代理软件,用 request.getRemoteAddr()方法获取的IP地址是:127.0.0.1或 192.168.1.110,而并不是客户端的真实IP. 经过代理以后,由于在客户端和服务之间增加了中间层,因此服务器无法直接拿到客户端的

JSP 获取真实IP地址的代码

[转载]JSP 获取真实IP地址的代码 JSP 获取真实IP地址的代码 在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的. 但是在通过了 Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了.如果使用了反向代理软件,用 request.getRemoteAddr()方法获取的IP地址是:127.0.0.1或 192.168.1.110,而并不是客户端的真实IP. 经过代理以后,由于在客户端和服务之间增加

百度云BLB后NGINX、TOMCAT获取真实IP

一.BLB后Nginx如何获取真实IP 前提:nginx作为slb获取真实ip是使用 http_realip_module,默认一键安装包安装的nginx没有安装这个模块需要重新重新编译nginx并加装. 查看是否安装此模块:./nginx -V 如没有安装此模块,需重新编译nginx增加 --with-http_realip_module 1.百度云BLB需要开启获取真实IP(默认已开启) 2.修改Nginx配置文件nginx.conf 添加: http { log_format main '

阿里云SLB后Nginx、Tomcat获取真实IP

一.SLB后Nginx如何获取真实IP 前提:nginx作为slb获取真实ip是使用 http_realip_module,默认一键安装包安装的nginx没有安装这个模块需要重新重新编译nginx并加装. 查看是否安装此模块:./nginx -V 如没有安装此模块,需重新编译nginx增加 --with-http_realip_module 1.阿里云SLB需要开启获取真实IP(默认已开启) 2.修改Nginx配置文件nginx.conf 添加: http { log_format main '

C#获取真实IP地址实现方法

通常来说,大家获取用户IP地址常用的方法是: 1 string IpAddress = ""; 2 if((HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]!=null 3 && HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] !=String.Empty)

C#如何获取真实IP地址

大家获取用户IP地址常用的方法是 C# 代码   复制 string IpAddress = ""; if((HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]!=null && HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] !=String.Empty) )

【 Tomcat 】后端tomcat获取真实IP

环境: nginx + tomcat nginx.conf 配置: proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_pass http://backend_tomcat; tomat server.conf配置: <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs&q

ASP如何获取真实IP地址

大家都知道,在ASP中可以使用Request.ServerVariables("REMOTE_ADDR")来取得客户端的IP地址,但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的IP地址,而不是真正的客户端IP地址.要想透过代理服务器取得客户端的真实IP地址,就要使用Request.ServerVariables("HTTP_X_FORWARDED_FOR")来读取. 不过要注意的是,并不是每个代理服务器都能用Request.ServerVariable