Hypertext Transfer Protocol verze 2 (HTTP/2 ) je nejnovější verze protokolu HTTP, publikovaná jako standard IETF v RFC 7540 v roce 2015. Protokol je zaměřen na výkon; konkrétně, koncovým uživatelem vnímaná latence, využití sítě a zdrojů serveru. Jedním z hlavních cílů je umožnit použití jediného připojení z prohlížečů k webové stránce. Protokol je zpětně kompatibilní, takže metody HTTP, stavové kódy a sémantika jsou stejné jako u předchozích verzí protokolu. Nginx má podporu HTTP/2 od verze 1.9.5. V tomto tutoriálu budu předpokládat, že již máte funkční konfiguraci TLS a že jste požadovali verzi Nginx nainstalovanou ve vaší vybrané distribuci Linuxu a že víte, jak používat Let's Encrypt, nebo víte, jak certifikát s vlastním podpisem.
Požadavky
Chcete-li povolit HTTP/2 v Nginx, budete muset splnit následující požadavky:
- Nginx verze 1.9.5 nebo vyšší. Verzi Nginx můžete zkontrolovat spuštěním (
nginx -v
) příkaz. - OpenSSL verze 1.0.2 nebo vyšší. Verzi OpenSSL můžete zkontrolovat spuštěním příkazu (verze OpenSSL).
- Certifikát SSL/TLS od společnosti Let's Encrypt nebo certifikát s vlastním podpisem.
- Povolen protokol TLS 1.2 nebo vyšší. Jinak nebudete moci používat HTTP/2. Implementace HTTP/2 musí používat TLS verze 1.2 nebo vyšší pro HTTP/2 přes TLS.
Povolit HTTP/2 v Nginx
Abychom povolili HTTP/2 v Nginx, musíme přidat http2
parametr k listen
v našem virtuálním hostiteli:
listen 443 ssl http2;
A znovu načtěte konfiguraci Nginx:
sudo systemctl reload nginx.service
Zde je minimální konfigurace virtuálního serveru, kterou lze použít k povolení HTTP/2 v některých virtuálních hostitelích:
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name example.com;
root /path/to/public;
ssl_certificate /path/to/certificate.crt;
ssl_certificate_key /path/to/private.key;
ssl_protocols TLSv1.2;
}
Chcete-li zkontrolovat, zda váš server podporuje HTTP/2, můžete použít vývojářské nástroje prohlížeče nebo soubory protokolu Nginx. Níže je snímek obrazovky z prohlížeče Google Chrome, který ukazuje HTTP/2 v akci na doméně https://example.com.
Chcete-li zobrazit vyjednaný protokol, můžete také použít vloženou proměnnou Nginx $http2. Tato proměnná bude protokolovat:„h2
“ pro HTTP/2 přes TLS, „h2c
” pro HTTP/2 přes čistý text TCP nebo prázdný řetězec jinak v protokolu přístupu Nginx, pokud je k tomu nakonfigurován.
A to je vše k povolení HTTP/2 na vašem serveru Nginx.
Odkazy
- RFC 7540
- HTTP/2