You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kubernetes部署链路中Nginx $remote_addr始终返回127.0.0.1问题咨询

问题原因

  1. $remote_addr是NGINX从TCP连接层直接获取的对端IP,默认不会读取请求头内的IP字段。你的请求链路中,Kubernetes Service转发请求到NGINX时做了源地址转换(SNAT),且走本地回环链路转发,因此NGINX拿到的TCP连接源IP天然就是127.0.0.1。
  2. 你配置的ngx_http_realip_module没有达到替换$remote_addr的预期效果:
    • 虽然你设置了real_ip_header X-Forwarded-For,准备用该头的内容替换$remote_addr,但从你提供的访问日志可以看到,最后一个字段$http_x_forwarded_for的值为-,说明上游的Kubernetes Service转发请求时没有携带X-Forwarded-For请求头,没有可用来替换的真实客户端IP值。
    • 即使后续Kubernetes Service配置了透传X-Forwarded-For头,你当前的set_real_ip_from仅配置了127.0.0.1为可信地址,还需要确认Kubernetes Service的转发出口IP是否属于该可信范围,否则realip模块依旧不会触发替换逻辑。

修复建议

  • 调整Kubernetes Service配置,开启外部流量策略保留源IP,或者配置转发时自动添加X-Forwarded-For头携带真实客户端IP。
  • 把Kubernetes Service/集群节点的网段加入NGINX的set_real_ip_from可信地址列表,保证realip模块可以正常触发替换。

内容的提问来源于stack exchange,提问作者henry-jo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 10:09:01