GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak povolit HTTP/2 na webovém serveru Apache na Ubuntu a Debianu

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. Apache má podporu HTTP/2 od verze 2.4.17. V tomto tutoriálu budu předpokládat, že již máte funkční konfiguraci TLS a že máte na své linuxové distribuci nainstalovanou požadovanou verzi Apache a že víte, jak používat Let's Encrypt, nebo víte, jak vydat certifikát s vlastním podpisem.

Tento výukový program byl testován na Debianu 10 , Debian 9, Ubuntu 20.04 LTS, a Ubuntu 18.04 LTS.

Předpoklady

Chcete-li povolit HTTP/2 v Apache, budete muset splnit následující požadavky:

  • Nejprve musíte na svém serveru povolit HTTPS. Všechny hlavní prohlížeče umožňují použití HTTP/2 pouze přes HTTPS. Také TLS  je vyžadována verze protokolu>=1.2 s moderními šifrovacími sadami.
  • Dále se ujistěte, že používáte Apache 2.4.17 nebo vyšší, protože HTTP/2 je podporováno od této verze a výše.
  • Zkontrolujte také, zda váš klient/prohlížeč skutečně podporuje HTTP/2.

Zakázat modul mod_php

Než budeme moci v dalším kroku přepnout modul Apache MPM na mpm_event, budeme muset deaktivovat starý režim mod_php a nahradit jej modernějším režimem PHP-FPM. Příkazy se liší pro každou verzi operačního systému, použijte prosím ty, které odpovídají vašemu nainstalovanému systému.

Ubuntu 20.04 LTS

sudo apt-get install php7.4-fpm
sudo a2dismod php7.4
sudo a2enconf php7.4-fpm
sudo a2enmod proxy_fcgi

Debian 10

sudo apt-get install php7.3-fpm
sudo a2dismod php7.3
sudo a2enconf php7.3-fpm
sudo a2enmod proxy_fcgi

Ubuntu 18.04 LTS

sudo apt-get install php7.2-fpm
sudo a2dismod php7.2
sudo a2enconf php7.2-fpm
sudo a2enmod proxy_fcgi

Debian 9

sudo apt-get install php7.0-fpm
sudo a2dismod php7.0
sudo a2enconf php7.0-fpm
sudo a2enmod proxy_fcgi

Povolení Apache MPM, který je kompatibilní s HTTP/2

Ve výchozím nastavení bude Apache používat prefork MPM. Tento MPM není kompatibilní s HTTP/2, takže jej budeme muset nahradit modernějším modulem mpm_event.

Nejprve deaktivujeme modul mpm_prefork:

sudo a2dismod mpm_prefork

Poté povolíme modul mpm_event:

sudo a2enmod mpm_event

Povolení podpory HTTP/2 v Apache

Aby HTTP/2 fungovalo na Apache, musíte povolit a načíst moduly SSL a HTTP/2. Chcete-li tak učinit, můžete ve svém terminálu spustit následující:

sudo a2enmod ssl

a poté

sudo a2enmod http2

Chcete-li aktivovat tyto nové moduly, musíte spustit:

sudo systemctl restart apache2

Po povolení a načtení nezbytných modulů Apache přejděte do konfiguračního adresáře Apache a upravte konfiguraci Apache.

Chcete-li povolit HTTP/2 na svém webovém serveru Apache, přidejte do své globální konfigurace Apache nebo do konkrétního virtuálního hostitele jednu z následujících možností.

Protocols h2 http/1.1

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:

<VirtualHost *:443>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/public_html/example.com
SSLEngine on
SSLCertificateKeyFile /path/to/private.pem
SSLCertificateFile /path/to/cert.pem
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
Protocols h2 http/1.1
</VirtualHost>

Chcete-li zkontrolovat, zda váš server podporuje HTTP/2, můžete použít vývojářské nástroje prohlížeče. Níže jsou snímky obrazovky z prohlížečů Google Chrome a Apple Safari, které ukazují HTTP/2 v akci na https://example.com doména.

Chrome

Safari

  • RFC 7540
  • HTTP/2

Ubuntu
  1. Jak povolit mod_rewrite na webovém serveru ubuntu?

  2. Jak nainstalovat a nakonfigurovat webový server Apache na Ubuntu 13.10

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

  1. Jak odstranit webový server Apache z Ubuntu

  2. Jak nainstalovat a nakonfigurovat Nginx na Ubuntu 18.04 / Debian 9

  3. Jak nainstalovat a nakonfigurovat webový server Apache na Debianu 11

  1. Jak nainstalovat a nakonfigurovat webový server Apache na Ubuntu

  2. Jak povolit protokol HTTP/2 s Apache na Ubuntu 20.04

  3. Jak nainstalovat webový server lighttpd na Debian 11 Bullseye nebo Ubuntu 20.04