Přeskočit na obsah
Návody

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.

Zapnuti HTTP/2 na serveru Apache

Predpokladem zapnuti HTTP/2 na Apache je verze baliku 2.4.17 (prvni verze Apache s nativni podporou, nikoliv externim modulem). Verzi bezici na vasem serveru zjistite pres terminal (predpoklada SSH pristup) prikazem:

apache2 -version

Pokud nemate na server pristup (typicky webhosting), tak pozadejte sveho webhostera o aktivaci HTTP/2 ci presun na novejsi server. Pokud ma webhoster povoleno zobrazeni stranky info.php, uvidite verzi webserveru po zadani http://nazevdomeny.cz/info.php v prohlizeci.

Za predpokladu podporovane verze Apache je potreba povolit patricny modul a zapnout protokol HTTP/2 v konfiguraci webu (vhost). Modul pro HTTP/2 povolime prikazem:

a2enmod http2

Po uspesnem zapnuti byste meli dostat tuto odpoved:

Enabling module http2.
To activate the new configuration, you need to run:
systemctl restart apache2

Prikaz systemctl restart apache2 nasledne take provedte, aby se restartoval Apache a zmena se projevila.

Samotny tento krok nestaci, protoze je potreba HTTP/2 zapnout u konkretnich vhostu. Otevrete si konfiguraci vhostu (na Debianu a jeho derivatech je najdete ve slozce /etc/apache2/sites-enabled/ jako soubory .conf, jedna konfigurace per domena) a do pouzitych protokolu pridejte h2 a h2c do sekce zacinajici <VirtualHost *:443>:

Protocols h2 h2c http/1.1

Touto upravou jste u daneho webu zapnuli pouziti protokolu HTTP/2. Nyni staci restartovat Apache

service apache2 restart

a muzete vyzkouset vysledek (viz posledni odstavec).

Zapnuti HTTP/2 na serveru Nginx

Predpokladem pro provoz HTTP/2 je verze serveru Nginx 1.9.5 a knihovna OpenSSL ve verzi 1.0.2. Informaci o verzi serveru ziskate podobne jako u Apache:

nginx -v

Nasledne otevrete konfiguracni soubor domeny (vhost by mel byt ve slozce /etc/nginx/sites-available/) a k direktive listen doplnte http2:

listen 443 ssl http2;

Pak Nginx restartujte a zmena bude aktivni.

service nginx restart

Kontrolu provedte podle posledniho odstavce tohoto navodu.

Zapnuti HTTP/2 na Windows Serveru

U Windows serveru je podpora tohoto protokolu dana knihovnami systemu a je tedy vazana na konkretni verzi systemu Windows Server. Microsoft prisel s podporou HTTP/2 ve Windows Server 2016 a IIS 10 (vice v nasem clanku) a pokud chcete vas web provozovat na teto platforme se zapnutym HTTP/2, je potreba upgradovat na tuto verzi.

Kontrola nastaveni

Jako vzdy po uprave nastaveni provedeme kontrolu, zdali vse bezi dle nasich predstav. Nejrychlejsi moznosti je navsteva prave upravene domeny a zobrazeni protokolu spojeni v konzoli prohlizece. Do te se dostanete pomoci tlacitka F12 a najdete si zalozku Sit. Pokud neni zobrazen sloupec s protokolem spojeni, tak kliknete pravym tlacitkem na zahlavi a vyberte Protokol.

Zobrazeni protokolu v konzoli prohlizece
Zobrazeni protokolu v konzoli prohlizece

Jakmile se bude protokol zobrazovat, meli byste videt jako pouzity protokol webu HTTP/2.0 ci H2. Externi zdroje mohou samozrejme pouzivat protokol jiny.

Dalsi moznosti pro otestovani je pouziti externich sluzeb. Muzete svuj nazev domeny zadat napriklad zde a obratem se vam potvdi, zdali domena bezi na HTTP/2 ci nikoliv.

Poznamka

Pokud nejste v nastaveni webovych serveru zbehli, tak doporucujeme drzet se prikladu uvedenych na nejlepsissl.eu. Zde najdete funkcni priklady nastaveni webovych serveru Apache a Nginx. Pokud vam vsak navod nedava smysl a nevite, co nastavujete, doporucujeme nastaveni serveru prenechat administratorovi.

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