我根据Digital Ocean纸设置了Nginx conf ,现在可以使用http2了。
但是在Chrome(版本54.0.2840.98(64位))开发工具中,它始终位于HTTP 1/1上:
NAME METHOD STATUS PROTOCOL
shell.js?v=xx.. GET 200 http/1/1
我的服务器正在运行同时支持ALPN和NPN的Ubuntu 16.04 LTS,并且随附的openssl版本是1.0.2g。
我在此工具站点上检查了http2支持,结果是:
Yeah! example.com supports HTTP/2.0. ALPN supported...
还可以检查是否卷曲:
$ curl -I --http2 https://www.example.com
HTTP/2 200
server: nginx/1.10.0 (Ubuntu)
date: Tue, 13 Dec 2016 15:59:13 GMT
content-type: text/html; charset=utf-8
content-length: 5603
x-powered-by: Express
cache-control: public, max-age=0
etag: W/"15e3-EUyjnNnyevoQO+tRlVVZxg"
vary: Accept-Encoding
strict-transport-security: max-age=63072000; includeSubdomains
x-frame-options: DENY
x-content-type-options: nosniff
我还从控制台通过is-http2 cli进行了检查:
is-http2 www.amazon.com
× HTTP/2 not supported by www.amazon.com
Supported protocols: http/1.1
is-http2 www.example.com
✓ HTTP/2 supported by www.example.com
Supported protocols: h2 http/1.1
Chrome为什么无法识别它?
如何同时使用Safari(v 10.0.1)进行检查?
可能是以下两个原因之一:
您使用的是防病毒软件,它的流量为MITM,因此将其降级为HTTP / 1.1。关闭AV上的https流量监控,以直接连接到服务器。您可以通过使用在线工具来测试您的站点对HTTP / 2的支持来检查是否是这种情况。
您使用的是较旧的TLS密码,具体来说是Chrome根据上述指南的第5步针对HTTP / 2(https://http2.github.io/http2-spec/#BadCipherSuites)不允许使用的密码。使用https://www.ssllabs.com/ssltest/扫描您的网站,以检查您的TLS配置并进行改进。
第三个原因是您的SSL / TLS库中缺少ALPN支持(例如,您正在使用openssl 1.0.1,并且需要一个1.0.2或更高版本),但是您已经确认自己具有ALPN支持,因此请跳过这个答案。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句