讲师中心 微信公众号
AI工具推荐 视频效率加速

负载均衡接入怎么结合后端真实的客户端 IP 传递获取客户端真实地址

千伟君_8876

千伟君_8876

发布时间:2026-10-04 11:23:32

|

792人浏览过

|

来源于php中文网

原创

七层用X-Forwarded-For解析最左IP,四层必须启用Proxy Protocol v2;后端需配合realip模块或proxy_protocol指令,并严格配置可信网段,否则易被伪造。

负载均衡接入怎么结合后端真实的客户端 ip 传递获取客户端真实地址

负载均衡接入后,后端服务默认看到的是负载均衡器的 IP,而不是客户端真实地址。要准确获取真实 IP,关键在于匹配负载均衡类型(四层 or 七层)和后端协议,并启用对应的标准透传机制。

HTTP/HTTPS(七层):用 X-Forwarded-For 头部

ALB、ELB、CLB 等七层负载均衡器默认会在请求中添加 X-Forwarded-For 头,格式为:
X-Forwarded-For: 客户端IP, 代理1IP, 代理2IP
后端服务需解析该字段最左侧的 IP(即第一个逗号前的部分)作为真实客户端 IP。

  • 确保负载均衡监听已开启“通过 X-Forwarded-For 获取客户端 IP”(多数云厂商默认开启)
  • 后端 Web 服务器(如 Nginx、Apache)不需改连接层变量,只需在日志或业务逻辑中读取该头
  • 若有多层代理(如 CDN + ALB),需在每层都信任并追加该头;否则可能被截断或伪造
  • 推荐配合 mod_remoteip(Apache) 或 set_real_ip_from + real_ip_header(Nginx) 模块,自动提取并覆盖 $remote_addr 变量,避免业务代码重复解析

TCP/UDP(四层):用 Proxy Protocol v2

四层负载均衡(如 NLB、TCP 监听的 ALB)不处理 HTTP 头,因此不能用 X-Forwarded-For。必须启用 Proxy Protocol v2,它在 TCP 连接建立初期插入一段二进制头部,携带客户端源 IP 和端口信息。

  • 在负载均衡侧开启“Proxy Protocol”支持(部分云平台需手动开启,如 NLB 的监听与后端服务器组需同时启用)
  • 后端服务必须主动解析 Proxy Protocol —— 常见方案包括:
    • Nginx:配置 proxy_protocol on; 并在 listen 指令后加 proxy_protocol
    • HAProxy:默认支持,需在 backend 中配置 option forwardfor 配合 send-proxy-v2
    • 自研服务:使用支持 Proxy Protocol 的 SDK 或库(如 Go 的 github.com/armon/go-proxyproto)
  • 注意:Proxy Protocol 必须端到端启用,中间任何不兼容组件(如未配置的防火墙、旧版 Nginx)都会导致连接失败

特殊场景与注意事项

某些组合下,标准方式可能失效,需额外判断:

  • IPv6 客户端访问 IPv4 后端:NLB 等四层设备需强制启用 Proxy Protocol,仅靠客户端地址保持无效
  • WAF + 负载均衡串联:优先以 WAF 提供的头为准(如 X-Real-IP 或 Cf-Connecting-IP),再 fallback 到 X-Forwarded-For
  • 容器化后端:即使获取到真实 IP,也仅能定位到 Pod 所在节点 IP,无法穿透到容器内部网络(除非使用 HostNetwork 或 CNI 支持)
  • 安全风险提醒:X-Forwarded-For 可被客户端伪造,务必只信任来自已知负载均衡或代理网段的请求头;Proxy Protocol 因位于 TCP 层起始位置,相对更难篡改

验证是否生效的小技巧

部署一个简单接口(如 /debug/ip),返回以下内容便于排查:

  • 原始连接 IP(如 Nginx 的 $remote_addr)
  • X-Forwarded-For 头全部值
  • 最终提取出的“客户端真实 IP”
  • 是否命中可信代理网段(用于判断 real_ip_header 是否触发)

通过 curl 加不同头模拟请求,对比输出,能快速定位是负载均衡未注入、后端未解析,还是信任网段配置错误。

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

LibLibAI
LibLibAI Hot

一款AI视频创作工具,主要用于国内领先的AI创意平台,以海量模型、低门槛操作与“创作-分享-商业化”生态,让小白与专业创作者都能高效实现图文乃至视频创意表达,适合需要提升相关任务效率的用户。

墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

相关专题

更多
python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2263

2023.08.11

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

5950

2024.03.19

后端的主要工作内容介绍
后端的主要工作内容介绍

后端是应用程序的服务端部分,负责核心任务,如数据库交互、业务逻辑处理和响应客户端请求。想了解更多后端的相关内容,可以阅读本专题下面的文章。

5286

2024.03.19

LLVM自定义Pass怎么写
LLVM自定义Pass怎么写

本专题聚焦LLVM自定义Pass开发,整理Pass类结构、run()方法、PreservedAnalyses、CMake构建、插件注册、-load-pass-plugin加载和测试用例编写流程。

60

2026.09.30

LLVM RISC-V参数配置教程
LLVM RISC-V参数配置教程

本专题介绍LLVM对RISC-V基础ISA和扩展的支持方式,涵盖RV32、RV64、标准扩展、实验性扩展、厂商扩展、-menable-experimental-extensions和版本差异。

60

2026.09.30

LLVM IR中间表示入门指南
LLVM IR中间表示入门指南

本专题整理LLVM IR的核心概念,包括中间表示作用、模块结构、函数、基本块、SSA形式、类型系统和常见语法,帮助新手理解LLVM编译流程中的关键层。

40

2026.09.30

PDF转图片方法
PDF转图片方法

需要把 PDF 页面用于上传、预览、分享或图片归档时,PDF 转图片方法专题整理 JPG/PNG 格式选择、逐页导出、清晰度设置、批量下载和结果检查等流程,帮助用户稳定完成 PDF 图片化处理。

40

2026.09.30

PixTV AI视频生成与无限画布创作
PixTV AI视频生成与无限画布创作

PixTV专题整理AI视频与视觉内容创作相关功能使用教程,涵盖AI生图、视频生成、无限画布、多模型创作、素材管理、声音音乐及视频剪辑等功能,帮助用户快速掌握PixTV从创意到成片的完整制作方法。

40

2026.09.29

Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

240

2026.09.23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn