千家信息网

Nginx基础学习之如何使用realip模块

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要为大家展示了Nginx基础学习之如何使用realip模块,内容简而易懂,希望大家可以学习一下,学习完之后肯定会有收获的,下面让小编带大家一起来看看吧。realip模块用途 :当本机 Ngi
千家信息网最后更新 2026年11月03日Nginx基础学习之如何使用realip模块

这篇文章主要为大家展示了Nginx基础学习之如何使用realip模块,内容简而易懂,希望大家可以学习一下,学习完之后肯定会有收获的,下面让小编带大家一起来看看吧。

realip模块

用途 :当本机 Nginx 处于反向代理后端时可以获取到用户的 真实IP地址 。

使用 : realip 功能需要 Nginx 添加 ngx_http_realip_module 模块,默认情况下是不被编译,如果需要添加,请在编译时添加 --with-http_realip_module 选项开启它。

realip 作用域

set_real_ip_from 、 real_ip_header 和 real_ip_recursive 都可以用于 http 、 server 、 location 区域配置。

realip 部分参数解释

  • set_real_ip_from :设置反向代理服务器,即信任服务器IP
  • real_ip_header X-Forwarded-For :用户真实IP存在 X-Forwarded-For 请求头中
  • real_ip_recursive :
    • off :会将 real_ip_header 指定的HTTP头中的最后一个IP作为真实IP
    • on :会将 real_ip_header 指定的HTTP头中的最后一个不是信任服务器的IP当成真实IP

http 头中的 X-Forwarded-For、X-Real-IP、Remote Address 解释

X-Forwarded-For 位于HTTP请求头,是HTTP的扩展 header ,用于表示HTTP请求端 真实IP 。

格式如下:

X-Forwarded-For: client, proxy1, proxy2

Nginx 代理一般配置为:

proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

解释:

  • X-Forwarded-For :Nginx追加上去的,但前面部分来源于nginx收到的请求头,这部分内容不是 很可信 。符合IP格式的才可以使用,否则容易引发 XSS 或者 SQL注入漏洞 。
  • Remote Address :HTTP协议没有IP的概念, Remote Address 来自于TCP连接,表示与服务端建立TCP连接的设备IP,因此,Remote Address无法伪造。
  • X-Real-IP :HTTP代理用于表示与它产生TCP连接的设备IP,可能是其他代理,也可能是真正的请求端。

realip 功能举例说明

下面是一个简单的架构图:

假设一:

1、如果 Nginx 没有使用 realip模块 ,第二台 Nginx中 X-Forwarded-For 请求是 1.1.1.1,但 remote_addr 地址是 2.2.2.2,这时应用服务可以通过 X-Forwarded-For 字段获取用户真实IP。不过这里有点风险,如果中间多几层反向代理服务,就无法获取唯一一个用户真实IP。

2、如果 Nginx 使用 realip模块 ,并如下设置;Nginx 会取 X-Forwarded-For 最后一个IP也就是 2.2.2.2 作为真实IP。最后应用服务拿到的地址也是 2.2.2.2,但事实这不是用户IP。

set_real_ip_from 2.2.2.2;set_real_ip_from 2.2.2.3; real_ip_header X-Forwarded-For; real_ip_recursive off;

3、如果 Nginx 使用 realip模块 ,并如下设置;由于 2.2.2.2 是信任服务器IP,Nginx 会继续往前查找,发现 1.1.1.1 不是信任服务器IP,就认为是真实IP。但事实 1.1.1.1 也就是用户IP。最后应用服务也拿到唯一的用户真实IP。

set_real_ip_from 2.2.2.2;set_real_ip_from 2.2.2.3; real_ip_header X-Forwarded-For; real_ip_recursive on;

以上就是关于Nginx基础学习之如何使用realip模块的内容,如果你们有学习到知识或者技能,可以把它分享出去让更多的人看到。

服务 模块 用户 代理 服务器 内容 地址 应用服务 学习 应用 解释 基础 习之 也就是 事实 功能 格式 设备 部分 编译 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技公司 深圳九邦互联网科技有限公司 湖南永感互联网科技有限公司 重生之互联网科技帝国 互联网科技公司税收优惠 互联网金融 科技金融 丰台科技园 互联网 互联网科技视频素材 互联网科技英文翻译 深圳前海聚择互联网科技有限公司 中国互联网有什么科技含量 互联网科技革命什么开始 辽宁互联网新科技 速维有品互联网信息科技(苏州)有限公司 内蒙古九一互联网科技 工业互联网等科技实现智能化赋能 半导体行业属于互联网高科技类吗 容联科技互联网电商 银川新华互联网科技学校是国营吗 平安好医生打造互联网科技医疗 互联网科技有限公司 鸠鸠互联网科技 科技互联网公司装修 互联网科技小贷 融势互联网科技 齐家互联网科技有限公司 广州恒生互联网科技有限 爱医互联网络科技 中科明德北京互联网科技 北京瑞云互联网科技有限公司
0