文档章节

Nginx反向代理的项目获取真实IP地址

哼_哼
 哼_哼
发布于 2017/06/20 17:17
字数 192
阅读 475
收藏 1

问题

公司最近的一个新的接口项目,需要判断客户服务器IP地址,但是在项目中获取到的都是局域网的IP地址。

后来发现通过反向代理的项目使用request.getRemoteAddr()方式获取到的是反向代理服务器的IP。

解决

在Http头创建保存真实IP的变量

在Nginx配置文件中获取到真实IP然后赋值给Http头变量X-Real-IP

server {
    listen       80;
    server_name  localhost;
    client_max_body_size 10m; 

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;

        # 获取真实IP地址创建并赋值给HTTP头变量X-Real-IP
        proxy_set_header X-Real-IP $remote_addr;
    }
}

 

在程序中获取Http头变量X-Real-IP,从而得到真实IP地址

request.getHeader("X-Real-IP");
request.getAttribute("X-Real-IP");

 

© 著作权归作者所有

哼_哼

哼_哼

粉丝 14
博文 68
码字总数 93484
作品 0
哈尔滨
私信 提问
获取用户的真实ip

常见的坑有两个: 一、获取的是内网的ip地址。在nginx作为反向代理层的架构中,转发请求到php,java等应用容器上。结果php获取的是nginx代理服务器的ip,表现为一个内网的地址。php获取REMOT...

蜗牛奔跑
2016/03/08
180
0
Java request获取客户端ip,各种apach,nginx等代理后依然正确

在JSP,Java里,获取客户端的IP地址的方法是:request.getRemoteAddr() ,这种方法在大部分情况下都是有效的。但是,如果使用了反向代理软件Apache,Squid,nginx等后,就不能获取到客户端的真...

yqwang75457
2017/02/22
0
0
Java获取远程ip地址的问题

文章背景 笔者在公司做一个项目, 在测试环境功能一切正常,但是上线后发现竟然连登录都异常了。观察日志,发现是没有从redis取到登录的随机密钥。我的项目登录分为两步,前端向后端请求随机...

谢随安
2018/11/19
0
0
nginx反向代理后应用程序如何获取客户端真实IP?

nginx反向代理后应用程序如何获取客户端真实IP? 2017年10月30日 10:32:03 it0101 阅读数:6200 标签: tomcatjavawebnginx应用服务器servlet 更多 个人分类: 学习经验服务器 版权声明:本文...

linjin200
2018/12/07
43
0
Laravel获取IP相关问题

Laravel获取ip方法:Illuminate\Http\Request的ip实现(Request::ip()): Illuminate\Http\Request继承与Symfony\Component\HttpFoundation\Request Symfony\Component\HttpFoundation\Req......

joyshion
2015/05/29
9
0

没有更多内容

加载失败,请刷新页面

加载更多

经典系统设计面试题解析:如何设计TinyURL(二)

原文链接:https://www.educative.io/courses/grokking-the-system-design-interview/m2ygV4E81AR 编者注:本文以一道经典的系统设计面试题:《如何设计TinyURL》的参考答案和解析为例,帮助...

APEMESH
今天
7
0
使用logstash同步MySQL数据到ES

概述   在生成业务常有将MySQL数据同步到ES的需求,如果需要很高的定制化,往往需要开发同步程序用于处理数据。但没有特殊业务需求,官方提供的logstash就很有优势了。   在使用logstas...

zxiaofan666
今天
10
0
X-MSG-IM-分布式信令跟踪能力

经过一周多的鏖战, X-MSG-IM的分布式信令跟踪能力已基本具备, 特点是: 实时. 只有要RX/TX就会实时产生信令跟踪事件, 先入kafka, 再入influxdb待查. 同时提供实时sub/pub接口. 完备. 可以完整...

dev5
今天
7
0
OpenJDK之CyclicBarrier

OpenJDK8,本人看的是openJDK。以前就看过,只是经常忘记,所以记录下 图1 CyclicBarrier是Doug Lea在JDK1.5中引入的,作用就不详细描述了,主要有如下俩个方法使用: await()方法,如果当前线...

克虏伯
今天
8
0
实战项目-学成在线(八)

在前后端分离架构中,服务层被拆分成了很多的微服务,微服务的信息如何管理?Spring Cloud中提供服务注册中心来管理微服务信息。 注册中心作用: 1、微服务数量众多,要进行远程调用就需要知...

lianbang_W
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部