Я настраиваю свою конфигурацию Nginx согласно Бумага Digital Ocean, и теперь доступен http2 ...
Но в Chrome (версия 54.0.2840.98 (64-разрядная версия)) Dev всегда используется HTTP 1/1:
NAME METHOD STATUS PROTOCOL
shell.js?v=xx.. GET 200 http/1.1
мой сервер работает под управлением Ubuntu 16.04 LTS, который поддерживает как ALPN, так и NPN, а версия openssl, поставляемая с ним, - 1.0.2g
Я проверил поддержку http2 с помощью этот инструментальный сайти результат:
Yeah! example.com supports HTTP/2.0. ALPN supported...
Также проверка с помощью curl в порядке
$ 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
протестировано с openssl с моего локального хоста
$ echo | openssl s_client -alpn h2 -connect www.example.com:443 | grep ALPN
depth=2 O = Digital Signature Trust Co., CN = DST Root CA X3
verify return:1
depth=1 C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3
verify return:1
depth=0 CN = example.com
verify return:1
ALPN protocol: h2
DONE
почему Chrome остался позади? Как я могу проверить это также с помощью Safari (v 10.0.1)
Согласно моему ответу на Переполнение стека:
Вероятно, будет одна из двух причин:
Вы используете антивирусное программное обеспечение, и оно снижает ваш трафик и, таким образом, понижает вас до HTTP / 1.1. Отключите мониторинг https-трафика на вашем AV, чтобы подключиться напрямую к серверу.
Вы используете старые шифры TLS, в частности тот, который Chrome запрещает для HTTP / 2 (https://http2.github.io/http2-spec/#BadCipherSuites) согласно шагу 5 приведенного выше руководства. Сканируйте свой сайт с помощью https://www.ssllabs.com/ssltest/ чтобы проверить конфигурацию TLS и улучшить ее.
Третья причина отсутствие поддержки ALPN в вашей библиотеке SSL / TLS (т.е. вы используете openssl 1.0.1 и, например, должны быть 1.0.2 или новее), но вы уже подтвердили, что у вас есть поддержка ALPN, поэтому пропустите это для этого ответа.