财富坊cff888
  • 删除

  • 场景: 客户端通过2个nginx代理访问tomcat服务,现在需要在tomcat服务获取客户的真实ip

    在第一层nginx 对应的server中设置如下参数

    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;

    }

    在这里不详细解释这些变量的含义了,自行百度或者google

    通过第一层nginx的请求如下:


    说明:X-Real-IP ,REMOTE-HOST,X-Forwarded-For 的值都是客户端的ip,如果只是通过一层Nginx,后面服务获取这3个参数都可以得到客户端的ip


    在第二层对应的server中设置如下参数

    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;

    }

    通过第二层nginx的请求如下:


    说明:X-Real-IP ,REMOTE-HOST的值为第一个Nginx的ip,X-Forwarded-For值为2个,第一个为客户端ip,第2个为第1个nginx的ip,所以无论多少层nginx,

    只要获取X-Forwarded-For变量的第一个值,就是客户端的ip


    阅读全文
    版权声明:本文为博主原创文章,未经博主允许不得转载。

    多层nginx代理tomcat获取客户端真实ip

    场景: 客户端通过2个nginx代理访问tomcat服务,现在需要在tomcat服务获取客户的真实ip 在第一层nginx 对应的server中设置如下参数 location / { ? ? ?...
    • lanranguidao
    • lanranguidao
    • 2017年09月13日 10:43
    • 25795

    tomcat 获取Nginx的真实用户IP

    需要:添加 ? ?proxy_set_header??X-Real-IP??$remote_addr;? upstream tomcat_server { server l...
    • aqiang912
    • aqiang912
    • 2016年01月15日 10:28
    • 301

    Nginx在多层代理下获取真实客户端IP地址

    最近在研究nginx中如何获取真实客户端IP的方法。众所周知,在编译Nginx时,可通过添加http_realip_module模块来获取真实客户端IP地址。何为真实IP地址呢?请看下图,既获取到的真...
    • ai2000ai
    • ai2000ai
    • 2017年04月19日 10:57
    • 2007

    nginx多层代理获取客户端的真实ip

    nginx多层代理获取客户端的真实ip 1、编译Nginx时,添加http_realip_module模块
    • wen_1108
    • wen_1108
    • 2017年10月24日 16:59
    • 116

    【Nginx】Nginx多级代理,获取客户端真实请求IP以及每级代理IP

    Nginx多级代理,获取客户端真实请求IP以及每级代理IP 如图所示,每一级nginx里的location配置里需要加上对应的配置,最后一级nginx是直接到应用,测试时为了方便,直接用echo模...
    • chiweitree
    • chiweitree
    • 2016年12月30日 16:44
    • 3662

    J2ee获取通过Nginx代理的客户端真实IP地址

    在开发工作中,我们常常需要获取客户端的IP。一般获取客户端的IP地址的方法是:request.getRemoteAddr();但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实...
    • my_session
    • my_session
    • 2015年08月12日 10:11
    • 1733

    nginx反向代理后应用程序如何获取客户端真实IP?

    Nginx反向代理后,Servlet应用通过request.getRemoteAddr()取到的IP是Nginx的IP地址,并非客户端真实IP,通过request.getRequestURL()获取的...
    • it_0101
    • it_0101
    • 2017年10月30日 10:32
    • 440

    通过nginx反向代理,Tomcat获取真实的客户端IP而非服务器IP

    通过nginx反向代理,就获取不到真实ip,是获取的nginx的ip,要得到真实的IP要进行配置Nginx的配置文件: nginx.conf proxy_set_header?? X-Real-IP...
    • saindy5828
    • saindy5828
    • 2016年05月11日 16:41
    • 3678

    nginx代理 tomcat获得真实用户IP

    1.nginx的location中设置 header,如 location /ConfigService/{ proxy_read_timeout 90; proxy_set_header Ho...
    • buyaore_wo
    • buyaore_wo
    • 2017年04月08日 21:34
    • 810

    Jetty/Tomcat + Nginx反向代理获取客户端真实IP、域名、协议、端口

    问题Nginx反向代理后,Servlet应用通过request.getRemoteAddr()取到的IP是Nginx的IP地址,并非客户端真实IP,通过request.getRequestURL()获...
    • xiao__gui
    • xiao__gui
    • 2017年06月26日 11:32
    • 1597
    内容举报
    返回顶部
    收藏助手
    不良信息举报
    您举报文章:财富坊cff888多层nginx代理tomcat获取客户端真实ip
    举报原因:
    原因补充:

    (最多只允许输入30个字)