使用域名指向nginx服务来代理https, nginx可以通过分析clienthello中的server_name字段得到访问域名,然后通过解析域名地址来进行代理。
这里有几个问题,第一个是低版本的ie浏览器,使用的是低版本的tls,没有这个字段,无法得到域名,不过现在使用低版本ie的越来越少了,可以忽略。
第二个是苹果的某些系统应用,填写的域名不是真正的域名,不过有迹可循,可以通过字符串修改为真正的域名,进行代理。
最近测试京东的时候发现访问京东二级域名的时候偶尔会返回200年,偶尔会301年一个异常页面。
http2.0反向代理遇到的坑