看到Chrome即将正式加入HTTP/2支持的消息,首先想到的是能不能用来x墙,于是开始折腾Chrome (client) <---{secured HTTP/2 proxy}---> nghttpx (server frontend) <---> Squid (server backend)的组合。
这个组合先前在v2上已经有人提到,可以参见 http://www.v2ex.com/t/143614 。
本人小白,直接在Ubuntu下用apt-get抓了nghttp2 (0.4.1-1)的包,貌似版本相对比较旧不过一切正常,喜欢折腾的可以自行编译最新版本,目测也不会很复杂。官方的文档写得不错,该有的应该都有了: https://nghttp2.org/documentation/index.html; https://nghttp2.org/documentation/nghttpx-howto.html#http-2-proxy-mode; https://github.com/tatsuhiro-t/nghttp2 。
通过chrome://net-internals可以发现,目前在Stable分支下的Chrome (40.0.2214.111)仍旧通过spdy/3.1连接,而Canary (42.0.2300.2)已经能够使用HTTP/2 (h2-14)。
试用了一段时间,相对于此前Stunnel+Squid的组合,暂时没有特别明显的差异。
顺便提一下,nghttpx支持使用证书验证(参见 https://nghttp2.org/documentation/nghttpx.1.html#cmdoption--verify-client ),于是可以自建PKI签发证书实现访问控制,安全方便(推荐下XCA,作为小白,再也不用折腾openssl的各种命令了)。
第一次在v2ex发帖,如有任何不足欢迎拍砖,谢谢。
这个组合先前在v2上已经有人提到,可以参见 http://www.v2ex.com/t/143614 。
本人小白,直接在Ubuntu下用apt-get抓了nghttp2 (0.4.1-1)的包,貌似版本相对比较旧不过一切正常,喜欢折腾的可以自行编译最新版本,目测也不会很复杂。官方的文档写得不错,该有的应该都有了: https://nghttp2.org/documentation/index.html; https://nghttp2.org/documentation/nghttpx-howto.html#http-2-proxy-mode; https://github.com/tatsuhiro-t/nghttp2 。
通过chrome://net-internals可以发现,目前在Stable分支下的Chrome (40.0.2214.111)仍旧通过spdy/3.1连接,而Canary (42.0.2300.2)已经能够使用HTTP/2 (h2-14)。
试用了一段时间,相对于此前Stunnel+Squid的组合,暂时没有特别明显的差异。
顺便提一下,nghttpx支持使用证书验证(参见 https://nghttp2.org/documentation/nghttpx.1.html#cmdoption--verify-client ),于是可以自建PKI签发证书实现访问控制,安全方便(推荐下XCA,作为小白,再也不用折腾openssl的各种命令了)。
第一次在v2ex发帖,如有任何不足欢迎拍砖,谢谢。