Zapnutí protokolu HTTP/2 na webovém serveru

22.2.2019 | Jindřich Zechmeister

O protokolu HTTP/2 bylo za poslední 3 roky napsáno mnoho a jistě tento termín znáte. Nástupce protokolu HTTP 1.1 z devadesátých let výrazně zrychluje načítání stránek a dokáže kouzla při mnoha obrázcích na stránce. Dnes se podíváme na postup zapnutí HTTP/2 na serveru, které se může hodit v případě, že ho stále nevyužíváte.

Zapnutí HTTP/2 na serveru Apache

Předpokladem zapnutí HTTP/2 na Apache je verze balíku 2.4.17 (první verze Apache s nativní podporou, nikoliv externím modulem). Verzi běžící na vašem serveru zjistíte přes terminál (předpokládá SSH přístup) příkazem:

apache2 -version

Pokud nemáte na server přístup (typicky webhosting), tak požádejte svého webhostera o aktivaci HTTP/2 či přesun na novější server. Pokud má webhoster povoleno zobrazení stránky info.php, uvidíte verzi webserveru po zadání http://nazevdomeny.cz/info.php v prohlížeči.

Za předpokladu podporované verze Apache je potřeba povolit patřičný modul a zapnout protokol HTTP/2 v konfiguraci webu (vhost). Modul pro HTTP/2 povolíme příkazem:

a2enmod http2

Po úspěšném zapnutí byste měli dostat tuto odpověď: Enabling module http2.
To activate the new configuration, you need to run:
systemctl restart apache2

Příkaz systemctl restart apache2 následně také proveďte, aby se restartoval Apache a změna se projevila.

Samotný tento krok nestačí, protože je potřeba HTTP/2 zapnout u konkrétních vhostů. Otevřete si konfiguraci vhostů (na Debianu a jeho derivátech je najdete ve složce /etc/apache2/sites-enabled/ jako soubory .conf, jedna konfigurace per doména) a do použitých protokolů přidejte h2 a h2c do sekce začínající :

Protocols h2 h2c http/1.1

Touto úpravou jste u daného webu zapnuli použití protokolu HTTP/2. Nyní stačí restartovat Apache

service apache2 restart nebo /etc/init.d/apache2 restart

a můžete vyzkoušet výsledek (viz poslední odstavec).

Zapnutí HTTP/2 na serveru Nginx

Předpokladem pro provoz HTTP/2 je verze serveru Nginx 1.9.5 a knihovna OpenSSL ve verzi 1.0.2. Informaci o verzi serveru získáte podobně jako u Apache:

nginx -v

Následně otevřete konfigurační soubor domény (vhost by měl být ve složce /etc/nginx/sites-available/) a k direktivě listen doplňte http2;

listen 443 ssl http2;

Pak Nginx restartujte a změna bude aktivní.

service nginx restart nebo /etc/init.d/nginx restart

Kontrolu proveďte podle posledního odstavce tohoto návodu.

Zapnutí HTTP/2 na Windows Serveru

U Windows serveru je podpora tohoto protokolu dána knihovnami systému a je tedy vázána na konkrétní verzi systému Windows Server. Microsoft přišel s podporou HTTP/2 ve Windows Server 2016 a IIS 10 (více v našem článku) a pokud chcete váš web provozovat na této platformě se zapnutým HTTP/2, je potřeba upgradovat na tuto verzi. U hostingu CZECHIA.com a cloudových služeb Zonercloud.cz je Windows Server 2016 standardně používanou verzí.

Kontrola nastavení

Jako vždy po úpravě nastavení provedeme kontrolu, zdali vše běží dle našich představ. Nejrychlejší možností je návštěva právě upravené domény a zobrazení protokolu spojení v konzoli prohlížeče. Do té se dostanete pomocí tlačítka F12 a najdete si záložku Síť. Pokud není zobrazen sloupec s protokolem spojení, tak klikněte pravým tlačítkem na záhlaví a vyberte Protokol.

Jakmile se bude protokol zobrazovat, měli byste vidět jako použitý protokol webu HTTP/2.0 či H2. Externí zdroje mohou samozřejmě používat protokol jiný.

Další možností pro otestování je použití externích služeb. Můžete svůj název domény zadat například zde a obratem se vám potvrdí, zdali doména běží na HTTP/2 či nikoliv.

Poznámka

Pokud nejste v nastavení webových serveru zběhlí, tak doporučujeme držet se příkladů uvedených na nejlepsissl.eu. Zde najdete funkční příklady nastavení webových serverů Apache a Nginx. Pokud vám však návod nedává smysl a nevíte, co nastavujete, doporučujeme nastavení serveru přenechat administrátorovi.


Ing. Jindřich Zechmeister
Specialista pro bezpečnostní SSL certifikáty
DigiCert TLS/SSL Professional
e-mail: jindrich.zechmeister(at)zoner.cz