千家信息网

http2.0反向代理遇到的坑

发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,使用域名指向nginx服务来代理https,nginx可以通过分析clienthello中的server_name字段得到访问域名,然后通过解析域名地址来进行代理。这里有几个问题,第一个是低版本的ie
千家信息网最后更新 2025年12月03日http2.0反向代理遇到的坑

使用域名指向nginx服务来代理https,nginx可以通过分析clienthello中的server_name字段得到访问域名,然后通过解析域名地址来进行代理。

这里有几个问题,第一个是低版本的ie浏览器,使用的是低版本的tls,没有这个字段,无法得到域名,不过现在使用低版本IE的越来越少了,可以忽略。
第二个是苹果的某些系统应用,填写的域名不是真正的域名,不过有迹可循,可以通过字符串修改为真正的域名,进行代理。

最近测试京东的时候发现访问京东二级域名的时候偶尔会返回200,偶尔会301一个异常页面。

而如果新开浏览器打开二级页面,就没有这种问题。
偶尔发现如果不使用域名直接代理,而是使用浏览器代理设置,访问一切正常,非常奇怪。
通过对比发现,使用域名代理时使用的是HTTP2.0,而设置浏览器代理时使用的是HTTP1.1,于是在浏览器禁止http2.0(火狐设置 about:config network.http.spdy.enabled.http2为假/gg浏览器没找到怎么设置),访问京东一切正常。
客户端在请求的时候会携带自己支持的http类型

于是想到在代理时篡改字段,把http2.0给关掉,只申请http1.1,但是连接会被中断。
https://blog.csdn.net/mrpre/article/details/77868570
根据这个网页可以知道,虽然hello是明文的,但是也有校验,篡改是走不通的。
继续进一步抓包,发现在访问二级页面时,浏览器发出了几十个请求(不同域名),但是抓包只有一个链接,难道HTTP2.0会把不同域名同样IP的请求放在一个链接里面复用吗?所以导致了问题。
这里做了一些尝试,使用jiadian.jd.com的url访问www.jd.com 的ip地址。


我们发现刚好和浏览器出现的错误一样,都带了一个cdn_nohost。
基本可以确定HTTP2.0对于多个域名解析到同一个ip上的情况下,会复用连接,那么在这种情况下,简单的https代理就不开行了,只能针对一个域名给予一个ip的方法才能处理。

域名 代理 浏览器 浏览 字段 时候 版本 页面 京东 不同 可以通过 地址 情况 链接 问题 复用 二级域名 几个问题 只有 域名代理 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 群尺网络技术有限公司 上海市计算机软件开发中心闵行 腾讯数据库域名规范 环保网络技术联系方式 dnf手游服务器系统 ninds数据库 服务器的qps怎么测 进入游戏服务器怎么改东西 群星服务器联机 安徽潮流软件开发价格服务标准 多台服务器日志管理制度 1995之前信息网络安全 安阳服务器机柜型号 软件开发团队考核制度 软件开发征税范围 农民漫画网络安全法 网络安全人工智能哪个好 计算机网络技术生涯规划书 网络安全审查办法滴滴出行 专科计算机网络技术好嘛 手机搭建socks服务器 思政大讲堂主题班会网络安全 网络安全法第三十八条要求 怎样自己搭建一个服务器上 深圳市迈集客网络技术有限公司 简述数据库系统的独立性的概念 h3c服务器硬盘怎么拆 变电站通信服务器的作用 盈信世嘉网络技术公司 无线网络安全威胁的解决方案
0