Closed inits closed 2 years ago
大佬,确实有这个问题,尤其是GitHub上最突出。这个是http2.0的原因吗?有没有解决办法
大佬,确实有这个问题,尤其是GitHub上最突出。这个是http2.0的原因吗?有没有解决办法
其实不是bug,这是浏览器机制导致的,你用wget 或者curl 进行访问没有问题,chrome firefox 所有浏览器访问都会有些问题,主要是https,所有访问域名 都走一个 ip, 导致以前访问域名和sniproxy是长连接,访问新的https域名也去连接这个 sniproxy的ip,就导致了 访问失败,你可以运行sniproxy到多个ip,为每个域名分配 一个没有使用的ip,就不会出错了
当tls发起连接的时候 gost才会获取的sni的名字,这样后面就用这个sni的名字请求目的网站, 但是 当用chrome firefox等浏览器,访问 gost设置的sni服务,浏览器网页一般嵌入非常多的 sni域名,(由于浏览器对gost的sni是长连接状态,就会导致 一部分访问返回200的状态码,但是却没有获取完整资源,我猜测是长连接状态,客户端没有 再次进行tls握手 发送sni ,导致gost路由出了问题, 客户端断开长连接,从新发起访问,就能正常获取资源) 就会导致 访问一些资源 出现返回200 但是无法加载,可以测试这个网站; https://ntdtv.com
注: 这种情况在 sniproxy以及 nginx里面都出现了,