send-proxy vs send-proxy-v2 vs send-proxy-v2-ssl

news/2026/1/22 21:14:19/文章来源:https://www.cnblogs.com/tiantao36/p/19519045

send-proxy vs send-proxy-v2 vs send-proxy-v2-ssl

下面我严格按你的要求结构来,不跳步、不混概念:

  1. 先对比 send-proxy / send-proxy-v2 / send-proxy-v2-ssl(结合你的场景)

  2. 明确在 LVS TOA → HAProxy → Nginx 的正确选择

  3. 给出一套“能跑、不会踩坑、支持 TLS 透传 + HTTP/2”的完整配置

    • HAProxy

    • Nginx stream

    • Nginx http


一、先对比三种 send-proxy(放在你的架构里看)

你的架构前提:

  • LVS 使用 TOA(真实源 IP 已在 TCP option 中)

  • HAProxy / Nginx 不依赖 TOA

  • TLS 必须透传

  • HTTP/2 必须支持

  • TLS 在 Nginx 终止

1️⃣ 能力对比表(结合 TLS 透传 & HTTP/2)

项目send-proxysend-proxy-v2send-proxy-v2-ssl
PROXY 协议版本 v1 v2 v2
编码方式 明文 二进制 二进制
客户端 IP
IPv6 ⚠️ 有限
性能 一般
TLS 是否使用
TLS 版本
SNI
ALPN / HTTP2 判断
TLS 透传 ⚠️ 不完整
HTTP/2 ⚠️ 易异常
生产推荐 ⚠️

2️⃣ 在你这个场景里的结论(非常明确)

LVS TOA + HAProxy TCP + TLS 透传 + HTTP/2 + Nginx 终止 TLS

只能用:send-proxy-v2-ssl
❌ 另外两个都会在 TLS / HTTP2 / SNI 上出问题


二、为什么 TLS 透传 + HTTP/2 必须是 send-proxy-v2-ssl

一句话解释:

HTTP/2 是跑在 TLS 之上的,而 TLS 透传时,后端只能靠 SSL TLV 判断“这是 HTTPS + h2”

没有 SSL TLV 会发生什么

  • Nginx stream 层:

    • 不知道是不是 SSL

    • ssl_preread 信息不完整

  • Nginx http 层:

    • HTTP/2 协议判断异常

    • 日志 / real_ip 错乱

    • mTLS / 策略无法用


三、完整正确配置(可直接用)

下面是一整套标准生产写法


1️⃣ HAProxy 配置(RS 机器上)

特点

  • TCP 模式

  • 不解 TLS

  • 注入 PROXY v2 + SSL TLV

globallog /dev/log local0maxconn 200000defaultslog globalmode tcptimeout connect 5stimeout client  1mtimeout server  1mfrontend ft_tls_passthroughbind *:443mode tcpdefault_backend bk_nginx_tlsbackend bk_nginx_tlsmode tcpserver nginx 127.0.0.1:443 send-proxy-v2-ssl

2️⃣ Nginx:stream 层(TLS 透传 + PROXY)

职责

  • 接收 PROXY v2

  • 接收 TLS 原始流

  • 不解密 TLS

  • 读取 SNI / TLS 信息

  • 转交给 http 层

stream {log_format stream_log'$remote_addr:$remote_port ''sni=$ssl_preread_server_name ''protocol=$protocol';server {listen 443 proxy_protocol;proxy_protocol on;ssl_preread on;proxy_pass 127.0.0.1:8443;}
}

关键点解释

  • proxy_protocol on;
    → 接收 HAProxy 注入的 PROXY v2 / SSL TLV

  • ssl_preread on;
    → 读取 SNI / TLS 信息(不解密)


3️⃣ Nginx:http 层(TLS 终止 + HTTP/2)

职责

  • 终止 TLS

  • 提供 HTTP/2

  • 使用真实客户端 IP

http {real_ip_header proxy_protocol;set_real_ip_from 127.0.0.1;log_format main'$remote_addr - $host [$time_local] ''"$request" $status $body_bytes_sent';server {listen 8443 ssl http2 proxy_protocol;server_name example.com;ssl_certificate     /etc/nginx/ssl/example.crt;ssl_certificate_key /etc/nginx/ssl/example.key;location / {proxy_pass http://backend_app;}}
}

关键点解释

  • listen ... ssl http2 proxy_protocol;

  • HTTP/2 必须在 TLS 终止点

  • real_ip_header proxy_protocol;
    → 客户端真实 IP 生效


四、TOA 在这里的地位(避免误解)

LVS TOA 只影响 LVS → HAProxy

一旦 HAProxy 建立新连接到 Nginx:

  • TOA 已经不存在

  • 必须靠 PROXY protocol 继续传递客户端信息

所以你这个链路里:

Client IP↓ (TOA)
HAProxy↓ (PROXY v2 + SSL TLV)
Nginx

五、最终一句话总结(架构级)

  • send-proxy:历史遗留,不适合 TLS / HTTP2

  • send-proxy-v2:仅适合非 TLS 或 TLS 已终止

  • send-proxy-v2-ssl
    👉 TLS 透传 + HTTP/2 + SNI + 真实 IP 的唯一正确选择


如果你愿意,我可以下一步帮你做:

  • LVS TOA + HAProxy + Nginx 的抓包验证方法

  • HTTP/2 / ALPN / SNI 是否生效的检查清单

  • stream → http 的多域名 SNI 分流方案

你现在问的,已经是七层负载与传输层边界的高级问题了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1201766.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

完整教程:Spring Boot 中的定时任务:从基础调度到高可用实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

北京汽车美容哪里好?五方天雅汽车服务园全面评测

在汽车保有量持续增长的北京,汽车美容服务已成为车主们日益关注的话题。面对市场上众多的服务选择,许多车主往往感到迷茫:哪里才是靠谱、专业、性价比高的汽车美容服务聚集地?今天,我们就以一个中立、客观的第三方视角…

通过pm2以cluster模式多进程部署next.js

一、介绍 Next.js 是一个强大的 React 框架,用于构建静态和服务器渲染的 React 应用程序。PM2 是一个带有内置负载均衡器的 Node.js 进程管理工具,它允许我们在多核服务器上运行多个 Node.js 实例。结合 Docker,可以…

学霸同款8个一键生成论文工具,研究生高效写作必备!

学霸同款8个一键生成论文工具,研究生高效写作必备! 论文写作的“隐形助手”:AI 工具如何改变研究生的学习节奏 在当今学术研究日益复杂的背景下,研究生们面临着前所未有的挑战。无论是论文选题、文献综述,还是数据整理…

Jetson 磁盘加密自动解锁全链路:initrd / nvluks-srv-app / OP-TEE TA / EKB 一次讲清

📺 B站视频讲解(Bilibili):博主个人介绍 📘 《Yocto项目实战教程》京东购买链接:Yocto项目实战教程 📘 加博主微信,进技术交流群: jerrydev Jetson 磁盘加密自动解锁全链路:initrd / nvluks-srv-app / OP-TEE TA / EKB 一次讲清 关键词:LUKS2、dm-crypt、initr…

2026医疗级弹力袜如何选择?medi迈迪专业测评与多品牌对比指南

在现代生活中,长时间站立、久坐办公、孕期负担或高强度运动,都让下肢静脉健康成为越来越多人关注的话题。医疗级弹力袜(也称静脉曲张袜)作为一种科学、有效的预防与辅助治疗工具,正逐渐走入大众视野。面对市场上众…

2026最新权威推荐:洗护用品来料加工首选这家就对了!

在寻找知名的洗护用品来料加工厂家时,品牌方往往面临多重选择难题:哪家工厂更靠谱?谁具备真正的定制化生产能力?谁能同时保障国际合规与时尚设计? 作为深耕美容护理与个人护理领域28余年的港资ODM/OEM企业,恩平安…

c# await 异步编程工具类

c# await 异步编程工具类public static class TaskCompletionSourceManager {private static Dictionary<string, TaskCompletionSource<object>> webTcsList = new();private static readonly object web…

算法题:字符串转换成整数。

字符串转换成整数:从原理到实战的深度解析 关键词 字符串转换、整数转换、类型转换、算法设计、边界处理、异常处理、Python实现 摘要 本文将深入探讨"字符串转换成整数"这一经典算法问题,从问题背景、核心概念、算法原理到实际应用进行全方位解析。我们将详细…

ASP.NET Core面试精讲系列三

目录 31. ASP.NET Core 中的 MVC 是什么&#xff1f;与“老版”ASP.NET 的 MVC 有何不同&#xff1f; MVC 的定义 ASP.NET Core MVC 与 ASP.NET MVC 的主要区别 32. 什么是 Razor Pages&#xff1f;何时使用 Razor Pages 而不是 MVC&#xff1f; 推荐使用 Razor Pages 的场…

导师推荐9个AI论文工具,助你轻松搞定研究生论文写作!

导师推荐9个AI论文工具&#xff0c;助你轻松搞定研究生论文写作&#xff01; AI 工具如何助力论文写作&#xff1f; 在研究生阶段&#xff0c;论文写作是一项既重要又繁重的任务。随着人工智能技术的不断发展&#xff0c;越来越多的 AI 工具被应用于学术写作中&#xff0c;帮…

基于SpringBoot的高校综合医疗健康服务管理系统设计与实现

高校综合医疗健康服务管理系统的背景意义高校作为学生和教职工密集的场所&#xff0c;医疗健康服务需求量大且多样化。传统的高校医疗管理模式存在信息孤岛、服务效率低、资源分配不均等问题。随着信息化技术的发展&#xff0c;构建基于SpringBoot的高校综合医疗健康服务管理系…

别再自己硬扛了!上海靠谱心理咨询机构实测 TOP5,情绪内耗真的有解

上海私立心理咨询机构推荐:真实口碑与专业视角整理 随着社会对心理健康的关注不断提升,“心理咨询”已不再是少数人的需求,而成为各种人群(如青少年、职场人、婚恋中年、家庭关系压力者等)日常生活的一部分。在上海这样…

059.同余与逆元

同余 加法同余 (a + b) % p = (a % p + b % p) % p 乘法同余 a * b % p = (a % p)*(b % p) % p 减法同余 (a - b) % p = (a % p - b % p + p ) % p 线性同余方程求x使得 ax = b (mod p)等价于求 ax + py = b 的一个解 …

消费品营销战略咨询公司怎么选?哪家靠谱?

摘要:当前消费品企业在选择营销战略咨询公司时,普遍陷入“盲目跟风、适配度低、效果难落地、成本浪费”的选型困局,核心症结在于缺乏清晰的选型标准、混淆“理论型”与“实操型”咨询差异、忽视自身需求与咨询公司能…

边界之内:为何高维内插无法催生下一次科学革命?

在一个被大数据和人工智能的承诺所笼罩的时代&#xff0c;一种信念日益深入人心&#xff1a;只要有足够的数据和强大的算法&#xff0c;我们就能自动解锁自然界最深邃的奥秘。机器学习模型在蛋白质折叠、材料发现和气候预测等领域取得的惊人成就&#xff0c;似乎都在为这一愿景…

FastAPI系列(01):FastAPI介绍

本系列汇总,请查看这里:https://www.cnblogs.com/uncleyong/p/19503695诞生背景 在FastAPI之前,Python已经有了多个流行的Web框架,如Flask和Django,它们分别以其简洁性和全面性获得了社区的广泛支持。然而,这些框…

php生成海报

$image_ewm QrCode::format(png)->margin(1)->size(600) // 放大生成->generate(route(wechat.bill.personal, [refereeId > $refereeId]));$ewmpath "uploads/agentshare/" . $refereeId . ".png"; Storage::disk("public")->…

VIZE SCADA-工业实时历史数据库-实时库

Vize是工业SCADA产品,V3.0发布,网址:www.vicdas.com 产品核心功能:实时库、历史库、数据采集、流程图。 特点: 自主可控、跨平台 代码自主可控、国产化设计、符合信创;跨平台,支持在Windows、Linux、国产系统,…

从嵌入式系统到智能终端

一、为什么 AIoT 成为必然趋势 传统嵌入式产品的核心任务是采集—控制—执行,系统逻辑大多基于确定性规则。而随着传感器数量激增、应用环境复杂化,仅依赖规则和阈值已难以应对现实世界的不确定性。 人工智能的引入,改变了这一范式。 通过机器学习(ML)或深度学习(DL),…