HTTP / 2 - це друга версія мережевого протоколу http, що включає в себе безліч різних поліпшень. У їх числі мультиплексування запитів (всі запити можуть бути оброблені паралельно), збільшення продуктивності, стиснення заголовків і т.д.
HTTP / 2 прийшов на зміну SPDY, розробка якого припинена.
Nginx підтримує протокол http / 2, починаючи з версії 1.9.5. Однак, в стабільному випуску Debian Jessie присутній тільки версія 1.6.2. Тому підключимо репозиторій backports , щоб оновити nginx до 1.9.10.
Перед оновленням необхідно дізнатися, які саме пакети nginx встановлені в системі (а їх кілька). Дивимося висновок команди:
# Dpkg -l | grep nginx
У мене на сервері він такий:
root @ ok.kr.ua: ~ # dpkg -l | grep nginx ii nginx-common 1.6.2-5 + deb8u1 all small, powerful, scalable web / proxy server - common files ii nginx-extras 1.6.2-5 + deb8u1 i386 nginx web / proxy server (extended version)
Значить, мені слід оновити ці пакети. Що я і зробив.
# Aptitude install nginx-common nginx-extras openssl -t jessie-backports
Тут після ключа -t вказуємо репозиторій jessie-backports.
OpenSSL версії 1.0.2 ми встановлюємо для підтримки ALPN.
Включаємо http / 2 для віртуального хоста
У файлі конфігурації всіх ваших сайтів, що підтримують ssl, (якщо ви використовуєте роздільні файли для віртуальних хостів в папці / etc / nginx / sites-enabled) або ж в головному файлі конфігурації /etc/nginx/nginx.conf знаходимо параметр listen.
Зазвичай, цей параметр виглядає так:
listen 443 ssl;
Якщо включений spdy, то так:
listen 443 ssl spdy;
У першому випадку потрібно просто додати після ssl параметр http2. У другому - замінити spdy на http2. У результаті повинно вийти це:
listen 443 ssl http2;
Параметр ssl_prefer_server_ciphers
наводимо до значення off
.
Або ж привести список доступних шифрів до відповідності з чорним списком RFC 7540, Appendix A .
ssl_ciphers EECDH: EDH:! 3DES:! DES:! DSS:! SEED:! CAMELLIA:! NULL:! RC4:! SHA;
Після всіх внесених змін слід протестувати конфігурацію командою nginx -t
.
У разі успішного тестування, перезапускаємо nginx і йдемо на ssllabs.com тестувати сервер. Також можна скористатися доповненням SPDY indicator для Firefox .