LOGO 首页 OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 技术文档 其他文档  
 
网站管理员

Nginx 配了反向代理,为什么后端拿到的客户端 IP 全是 127.0.0.1?

admin
2026年9月9日 11:13 本文热度 140
接口做访问日志、限流或登录风控时,常要记录客户端 IP。可前面加了 Nginx,日志里的 IP 突然全变成:

127.0.0.1

其实答案很简单:

Nginx 会重新和后端建立连接。后端默认看到的是 Nginx 这个直接连接者,而不是最初的客户端。


后端看到的是“谁连过来”

没有 Nginx 时:

浏览器 → 后端服务

加了反向代理后:

浏览器 → Nginx → 后端服务

如果配置是:

proxy_pass http://127.0.0.1:8080;

后端看到的连接来源自然就是 127.0.0.1。

这不是 IP 被改坏了,直接连后端的就是 Nginx。


真实客户端 IP 要靠请求头往后传

Nginx 可以把它看到的客户端地址放进请求头:

location / {    proxy_pass http://127.0.0.1:8080;     proxy_set_header Host $host;    proxy_set_header X-Real-IP $remote_addr;    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;    proxy_set_header X-Forwarded-Proto $scheme;}

后端读取这些头,才能知道最初的访问者。X-Forwarded-For 会保留整条代理链路。


多层代理时,先让 Nginx 识别可信来源

线上常见的链路更长:

用户 → CDN / 负载均衡 → Nginx → 应用

这时 Nginx 的 $remote_addr 可能已经是负载均衡器。要明确哪些上游代理可以信任:

set_real_ip_from 192.0.2.0/24; # 替换为实际可信代理网段real_ip_header X-Forwarded-For;real_ip_recursive on;

Nginx 只会对来自可信网段的请求,按这个头还原客户端地址。

不能谁带 IP 头就信谁

X-Forwarded-For 只是 HTTP 请求头,客户端也能自己伪造:

X-Forwarded-For: 8.8.8.8

应用不能无条件相信它。只有请求来自信任的 Nginx 或负载均衡器,才读取它转发的客户端地址。

后端框架也通常有“信任代理”的配置。开得太宽,可能被伪造 IP;完全没开,又只会拿到 Nginx 的地址。


简单总结一下

后端默认看到的是直接连接它的 Nginx

proxy_pass 到 127.0.0.1 时,后端看到 127.0.0.1 很正常X-Real-IP 和 X-Forwarded-For 用来传递客户端地址多层代理要先配置可信来源不要直接相信公网请求自带的 IP 头

所以后端 IP 全是 127.0.0.1,通常不是日志出了问题。

客户端 IP 需要被明确、安全地往后传。

原来如此。


阅读原文:点击这里


该文章在 2026/9/9 11:13:53 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2026 ClickSun All Rights Reserved  粤ICP备13012886号-1  粤公网安备44030602007207号