Od vzniku World Wide Web (www ), HTTP protokol se v průběhu let vyvíjel, aby poskytoval bezpečný a rychlý digitální obsah přes internet.
Nejpoužívanější verzí je HTTP 1.1 a přestože obsahuje vylepšení funkcí a optimalizace výkonu, které řeší nedostatky dřívějších verzí, zaostává za několika dalšími významnými funkcemi, kterými se zabývá HTTP/2 .
Jaká jsou omezení HTTP/1.1?
HTTP/1.1 protokol je plný následujících nedostatků, které jej činí méně ideálním, zejména při provozování webových serverů s vysokým provozem:
- Zpoždění při načítání webových stránek kvůli dlouhým záhlavím HTTP.
- HTTP/1.1 je schopen odeslat pouze jeden požadavek pro každý soubor na připojení TCP.
- Vzhledem k tomu, že HTTP/1.1 zpracovává jeden požadavek pro každé TCP spojení, jsou prohlížeče nuceny posílat záplavu paralelních TCP spojení, aby současně zpracovávaly požadavky. To vede k zahlcení TCP a v konečném důsledku plýtvání šířkou pásma a degradaci sítě.
Výše uvedené problémy často vedly ke snížení výkonu a vysokým režijním nákladům při využití šířky pásma. HTTP/2 vstoupil do obrazu, aby tyto problémy vyřešil, a je nyní budoucností protokolů HTTP.
Výhody použití HTTP/2
Nabízí následující výhody:
- Komprese záhlaví, která minimalizuje požadavky klientů, a tím snižuje spotřebu šířky pásma. Výsledkem je vysoká rychlost načítání stránky.
- Multiplexování několika požadavků přes jedno TCP spojení. Server i klient mohou rozdělit požadavek HTTP do více rámců a přeskupit je na druhém konci.
- Rychlejší výkon webu, který následně vede k lepšímu hodnocení SEO.
- Vylepšené zabezpečení, protože většina běžných prohlížečů načítá HTTP/2 přes HTTPS.
- HTTP/2 je považováno za vhodnější pro mobily díky funkci komprese záhlaví.
To znamená, že povolíme HTTP/2 na Apache na Ubuntu 20.04 LTS a Ubuntu 18.04 LTS .
Předpoklady:
Než začnete, ujistěte se, že jste povolili HTTPS na webovém serveru Apache před povolením HTTP/2 . Je to proto, že všechny běžné webové prohlížeče podporují HTTP/2 přes HTTPS . Mám název domény nasměrovaný na instanci na Ubuntu 20.04 na kterém běží server Apache zabezpečený pomocí certifikátu Let’s Encrypt.
Také se doporučuje mít Apache 2.4.26 a novější verze pro produkční servery, které mají v úmyslu přejít na HTTP/2 .
Chcete-li zkontrolovat verzi Apache jste spuštěni, spusťte příkaz:
$ apache2 -v
Zkontrolujte verzi Apache v Ubuntu
Z výstupu můžete vidět, že používáme nejnovější verzi, což je Apache 2.4.41 v době psaní tohoto článku.
Povolte HTTP/2 na virtuálním hostiteli Apache
Chcete-li začít, nejprve se ujistěte, že webový server běží HTTP/1.1 . Můžete to provést v prohlížeči otevřením sekce nástrojů pro vývojáře v Google Chrome pomocí Ctrl +SHIFT + I
kombinace. Klikněte na položku Síť “ a vyhledejte „Protokol '.
Potvrďte verzi protokolu HTTP
Dále povolte HTTP/2 modul na Ubuntu spuštěním následujícího příkazu.
$ sudo a2enmod http2
Povolit HTTP/2 na Ubuntu
Dále vyhledejte a upravte SSL soubor virtuálního hostitele, pokud jste povolili HTTPS pomocí Let’s Encrypt , vytvoří se nový soubor s le-ssl.conf přípona.
$ sudo vim /etc/apache2/sites-enabled/your-domain-name-le-ssl.conf
Vložte direktivu níže za <VirtualHost *:443>
tag.
Protocols h2 http/1.1
Povolit HTTP/2 na Apache
Chcete-li uložit změny, restartujte webový server Apache.
$ sudo systemctl restart apache2
Chcete-li zkontrolovat, zda HTTP/2 je povoleno, načtěte hlavičky HTTP pomocí následujícího příkazu curl as show.
$ curl -I --http2 -s https://domain.com/ | grep HTTP
Zkontrolujte podporu HTTP/2 v Apache
Měl by se zobrazit výstup.
HTTP/2 200
V prohlížeči znovu načtěte svůj web. Poté se vraťte do vývojářských nástrojů a potvrďte HTTP/2 označené h2
štítku na „Protokol '.
Potvrďte verzi protokolu HTTP/2
Při použití modulu mod_php s Apache
Pokud používáte Apache vedle mod_php modul, musíte přejít na PHP-FPM . Je to proto, že mod_php modul používá prefork MPM modul, který není podporován HTTP/2 . Je třeba odinstalovat prefork MPM a přepněte na mpm_event modul, který bude podporován HTTP/2 .
Pokud používáte PHP 7.4 mod_php modul, například jej deaktivujte podle obrázku:
$ sudo a2dismod php7.4
Zakázat modul mod_php
Poté vypněte předvěšení MPM modul.
$ sudo a2dismod mpm_prefork
Zakázat Prefork MPM v Apache
Po deaktivaci modulů dále povolte MPM události , Fast_CGI a setenvif moduly, jak je znázorněno.
$ sudo a2enmod mpm_event proxy_fcgi setenvif
Povolit událost MPM v Apache
Nainstalujte PHP-FPM na Ubuntu
Dále nainstalujte a spusťte PHP-FPM jak je uvedeno.
$ sudo apt install php7.4-fpm $ sudo systemctl start php7.4-fpm
Poté povolte PHP-FPM pro spuštění při spouštění.
$ sudo systemctl enable php7.4-fpm
Dále povolte PHP-FPM jako obslužný program PHP Apache a restartujte webový server Apache, aby se změny projevily.
$ sudo a2enconf php7.4-fpm
Povolte podporu HTTP/2 v Apache Ubuntu
Poté povolte modul HTTP/2 jako dříve.
$ sudo a2enmod http2
Pro synchronizaci všech změn restartujte Apache.
$ sudo systemctl restart apache2
Nakonec můžete otestovat, zda váš server používá HTTP/2 protokol pomocí příkazu curl, jak je znázorněno.
$ curl -I --http2 -s https://domain.com/ | grep HTTP
Zkontrolujte protokol HTTP/2 v Apache
Můžete se také rozhodnout používat nástroje pro vývojáře v Google Chrome prohlížeče k ověření, jak bylo zdokumentováno dříve. Musíme do konce tohoto průvodce. Doufáme, že pro vás byly informace cenné a že můžete pohodlně povolit HTTP/2 na Apache s lehkostí.
Sharing is Caring…Sdílet na FacebookuSdílet na TwitteruSdílet na LinkedinSdílet na Redditu