多级nginx反向代理,如何获取客户端真实IP

本文介绍了三种在Nginx反向代理中获取客户端真实IP的方法:1) 添加X-Real-IP和X-Forwarded-For头;2) 使用http_realip_module模块。详细分析了每种方法的工作原理和配置细节,强调了安全性和防止客户端IP伪造的重要性。
摘要由CSDN通过智能技术生成

1、Nginx Proxy直接把请求往后转发,没有做任何处理。

Nginx Proxy
10.10.107.107 nginx.conf
location /test {
    proxy_pass http://10.10.107.112:8080;
}
10.10.107.112 nginx.conf
location /test {
    proxy_pass http://10.10.107.114:8080;
}
Nginx Proxy就是简单的把请求往后转发。
Nginx Backend
10.10.107.114 nginx.conf
location /test {
    default_type text/html;
    charset gbk;
    echo "$remote_addr || $http_x_forwarded_for";
}
  Nginx Backend输出客户端IP($remote_addr)和X-Forwarded-For请求头($http_x_forwarded_for),当访问服务时输出结果如下所示:

10.10.107.112 ||

分析
1. r e m o t e a d d r 代 表 客 户 端 I P , 当 前 配 置 的 输 出 结 果 为 最 后 一 个 代 理 服 务 器 的 I P , 并 不 是 真 实 客 户 端 I P ; 2. 在 没 有 特 殊 配 置 情 况 下 , X − F o r w a r d e d − F o r 请 求 头 不 会 自 动 添 加 到 请 求 头 中 , 即 N g i n x B a c k e n d 的 remote_addr代表客户端IP,当前配置的输出结果为最后一个代理服务器的IP,并不是真实客户端IP; 2.在没有特殊配置情况下,X-Forwarded-For请求头不会自动添加到请求头中,即Nginx Backend的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值