Apache HTTP Server (často nazýván pouze Apache) je jedním z nejpoužívanějších webových serverů na světě. Verze Apache 2.4 přinesla podporu pro protokol HTTP/2, který přináší vylepšenou výkonost a efektivitu oproti staršímu protokolu HTTP/1.1. V tomto článku se podíváme na teorii a nasazení Apache HTTP/2 v prostředí Linuxu, a poskytneme příklady konfigurace.
Co je protokol HTTP/2?
HTTP/2 je revoluční verze protokolu HTTP, která nahrazuje starší verzi HTTP/1.1. Byl navržen tak, aby zvýšil rychlost a výkon webových aplikací. Mezi hlavní výhody protokolu HTTP/2 patří:
- Multiplexing: HTTP/2 umožňuje odesílat více požadavků a odpovědí najednou pomocí jednoho spojení, což snižuje latenci a zvyšuje efektivitu.
- Server Push: Server může aktivně odesílat odpovědi klientovi bez předchozího požadavku. To umožňuje přednačítání zdrojů a urychluje načítání stránek.
- Header komprese: HTTP/2 komprimuje hlavičky požadavků a odpovědí, což snižuje objem přenášených dat a zrychluje načítání stránek.
- Prioritizace: Klient může určit prioritu jednotlivých požadavků, což zlepšuje spravedlnost a efektivitu přenosu dat.
Nasazení Apache HTTP/2 v Linuxu
Pro nasazení Apache HTTP/2 v Linuxu je třeba mít nainstalovaný Apache HTTP Server verze 2.4 a OpenSSL knihovny s podporou protokolu HTTP/2. Následující kroky popisují postup nasazení:
1. Aktualizace Apache HTTP Server
Nejprve je nutné zajistit, že máte nainstalovanou nejnovější verzi Apache HTTP Server 2.4. Aktualizaci můžete provést pomocí balíčkovacího systému vaší distribuce Linuxu. Například v distribuci Ubuntu můžete použít příkaz:
sudo apt update
sudo apt upgrade apache2
2. SSL/TLS certifikát
Pro použití HTTP/2 je nutné mít nainstalovaný SSL/TLS certifikát. Nejčastěji se používá certifikát od certifikační autority (CA) jako Let’s Encrypt. Certifikát musí být nainstalován v konfiguraci Apache.
3. Aktivace HTTP/2 modulu
Následujícím krokem je aktivace modulu http2
v konfiguraci Apache. Otevřete soubor apache2.conf
nebo httpd.conf
(umístěný v /etc/apache2/
nebo /etc/httpd/
) v textovém editoru a odkomentujte řádek obsahující http2
:
LoadModule http2_module modules/mod_http2.so
4. Konfigurace virtual hostu
Pro každý webový server (virtual host) musíte povolit protokol HTTP/2. Otevřete konfigurační soubor příslušného virtual hostu (např. example.com.conf
) v textovém editoru a přidejte následující řádek:
Protocols h2 http/1.1
5. Restart Apache HTTP Serveru
Po provedení výše uvedených změn je nutné restartovat Apache HTTP Server, aby se změny projevily. Použijte následující příkaz:
sudo systemctl restart apache2
Příklad konfigurace Apache HTTP/2
Následující je příklad konfigurace pro virtual host example.com
:
<VirtualHost *:80>
ServerName example.com
Redirect permanent / https://example.com/
</VirtualHost>
<VirtualHost *:443>
ServerName example.com
Protocols h2 http/1.1
SSLEngine on
SSLCertificateFile /path/to/certificate.crt
SSLCertificateKeyFile /path/to/private.key
SSLCertificateChainFile /path/to/chain.crt
# Další konfigurace virtual hostu...
</VirtualHost>
Závěr
Protokol HTTP/2 přináší vylepšenou výkonost a efektivitu ve srovnání s protokolem HTTP/1.1. Nasazení Apache HTTP/2 v prostředí Linuxu vyžaduje aktualizaci Apache HTTP Serveru, instalaci SSL/TLS certifikátu a aktivaci modulu http2
. Příklady konfigurace ukazují, jak povolit HTTP/2 pro konkrétní virtual host.
Detailnější návod pro Debian 9 – https://blog.samuel.domains/blog/tutorials/how-to-enable-http2-on-apache-debian-9
On-Line kontrola funkčnosti – https://http2.pro