GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak povolit HTTP/2 v Apache na Ubuntu

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:

  1. Zpoždění při načítání webových stránek kvůli dlouhým záhlavím HTTP.
  2. HTTP/1.1 je schopen odeslat pouze jeden požadavek pro každý soubor na připojení TCP.
  3. 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:

  1. 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.
  2. 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.
  3. Rychlejší výkon webu, který následně vede k lepšímu hodnocení SEO.
  4. Vylepšené zabezpečení, protože většina běžných prohlížečů načítá HTTP/2 přes HTTPS.
  5. 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
Ubuntu
  1. Ubuntu 20.04 – Jak povolit Hwe?

  2. Jak povolit HTTP/2 v Nginx na Ubuntu a CentOS

  3. Jak nastavit Apache s HTTP/2 na Ubuntu 16.04

  1. Jak nainstalovat Apache na Ubuntu 18.04

  2. Jak povolit SSH na Ubuntu 18.04

  3. Jak povolit vzdálenou plochu Ubuntu

  1. Jak nainstalovat Apache na Ubuntu 20.04

  2. Jak povolit noční osvětlení na Ubuntu 17.10

  3. Jak povolit SSH na Ubuntu 20.04