Nginx之服务端获取真实客户端IP

简介: Nginx之服务端获取真实客户端IP

服务端获取真实客户端IP,在日常项目中也常会出现这种需求,如果我们使用了反向代理服务,很有可能就在一些特殊的情况下就无法获取到真实的客户端IP;这个时候就需要我们在Nginx反向代理服务中加入一些配置来提供真实的客户端IP。

在配置之前,我们还要去讲一下Nginx中内置变量主要有哪些,分别有放置着什么样的值有什么样的作用。

nginx内置变量

$arg_name: 请求参数中的参数名称,如果?name=123,$arg_name取到的值就是name了。

$args: 请求参数中的参数值。

$content_length:请求头的content_length。

$content_type:请求头的content_type。

$cookie_name:cookie名称。

$hostname:主机名称。

$remote_addr:客户端地址,记住这个参数,一会我们就要用到了。

$remote_port:客户端端口。

$remote_user:用于http基础认证服务的用户名。

$request:代表客户端的请求地址。

$server_addr:服务器端地址。

$server_name:服务器端名称,例如域名。

$server_port:服务器端端口。

配置获取客户端真实IP

我们通常在Java后端获取客户端IP的方式是 request.getRemoteAddr(),但是如果我们使用了Nginx或者是其他的反向代理服务器。

就会导致这个方法取到的值不准确,甚至取不到,所以,我们就需要在反向代理服务器上做一些‘手脚’。

如何做呢,这时候就需要我们的nginx内置变量出场了,来看一下吧。

$remote_addr:客户端地址;

就是这个了,这个参数代表着你从客户端访问Nginx反向代理服务的地址,将这个参数传输给服务端就ok了。

配置如下:

server{
   .......这就不写了,只写重点。
   location / {
       proxy_set_header X-Real-IP $remote_addr;
       proxy_pass http:www.test.com;
   }
}

如此配置的话,我们就可以在后台利用request.getHeader('X-Real-IP')来获取了;


相关文章
|
16天前
|
运维 负载均衡 应用服务中间件
LNMP详解(九)——Nginx虚拟IP实战
LNMP详解(九)——Nginx虚拟IP实战
30 2
|
1月前
|
域名解析 网络协议 应用服务中间件
nginx-ingress通过ipv6暴露服务,并在nginx ingress日志中记录客户端真实ipv6的ip地址
本文主要通过阿里云提供的clb和nlb来实现,建议是提前创建好双栈的vpc和vsw(使用clb可以不用双栈vpc和vsw)
175 1
|
2月前
|
网络协议 应用服务中间件 Apache
在 NGINX 中根据用户真实 IP 进行限制
在 NGINX 中根据用户真实 IP 进行限制
|
3月前
|
负载均衡 Ubuntu 应用服务中间件
如何在Nginx上阻止特定IP地址的访问,以增强服务器的安全性
如何在Nginx上阻止特定IP地址的访问,以增强服务器的安全性
38 0
如何在Nginx上阻止特定IP地址的访问,以增强服务器的安全性
|
4月前
|
人工智能 应用服务中间件 nginx
树莓派上使用Nginx通过内网穿透实现无公网IP访问内网本地站点
树莓派上使用Nginx通过内网穿透实现无公网IP访问内网本地站点
|
6月前
|
移动开发 应用服务中间件 nginx
统计请求nginx最多次数的IP地址
统计请求nginx最多次数的IP地址
|
7月前
|
应用服务中间件 Linux Shell
CentOS7下利用自带防火墙+Nginx封堵高频访问的恶意IP
CentOS7下利用自带防火墙+Nginx封堵高频访问的恶意IP
154 0
|
8月前
|
关系型数据库 MySQL Unix
nginx代理DB & ip限制
nginx代理DB & ip限制
183 0
|
负载均衡 Java 应用服务中间件
【Nginx】如何获取客户端真实IP、域名、协议、端口?看这一篇就够了!
Nginx最为最受欢迎的反向代理和负载均衡服务器,被广泛的应用于互联网项目中。这不仅仅是因为Nginx本身比较轻量,更多的是得益于Nginx的高性能特性,以及支持插件化开发,为此,很多开发者或者公司基于Nginx开发出了众多的高性能插件。使用者可以根据自身的需求来为Nginx指定某款插件以增强Nginx在某种特定场景下的功能或者提升Nginx在某种特定场景下的性能。
1347 0
|
17天前
|
运维 前端开发 应用服务中间件
LNMP详解(八)——Nginx动静分离实战配置
LNMP详解(八)——Nginx动静分离实战配置
22 0