Jak povolit HTTP/2.0 v Nginx
HTTP/2 je nejnovější standard pro protokol HTTP, je nástupcem HTTP/1.1. Je stále oblíbenější díky výhodám, které přináší webovým vývojářům a uživatelům obecně. Poskytuje optimalizovaný přenos pro sémantiku HTTP tím, že podporuje všechny základní funkce HTTP/1.1, ale jeho cílem je být v mnoha ohledech efektivnější.
Kromě HTTP/2 existuje mnoho funkcí, které vám poskytují více možností optimalizace webových stránek/aplikací. Nabízí skutečné multiplexování a souběžnost, lepší kompresi hlaviček (binární kódování), lepší prioritizaci, lepší mechanismy řízení toku a nový režim interakce nazvaný „server push “, který umožňuje serveru posílat odpovědi klientovi. . Nemluvě o tom, že protokol HTTP/2 je založen na experimentálním protokolu SPDY společnosti Google.
Proto je primárním cílem HTTP/2 zkrátit celkovou dobu načítání webové stránky, a tím zlepšit výkon. Zaměřuje se také na využití zdrojů sítě a serveru a také na zabezpečení, protože u HTTP/2 je šifrování SSL/TLS povinné.
V tomto článku se dozvíte, jak povolit Nginx s podporou HTTP/2 na serverech Linux.
Předpoklady:
- Funkční instalace NGINX verze 1.9.5 nebo vyšší, vytvořená pomocí modulu ngx_http_v2_module.
- Ujistěte se, že váš web používá certifikát SSL/TLS, pokud jej nemáte, můžete jej získat od Let’s Encrypt nebo použít certifikát s vlastním podpisem.
NGINX můžete nainstalovat nebo jej nasadit pomocí zásobníku LEMP, jak je popsáno v následujících průvodcích:
- Jak nainstalovat Nginx na CentOS 8
- Jak nainstalovat LEMP Server na CentOS 8
- Jak nainstalovat NGINX, MySQL/MariaDB a PHP na RHEL 8
- Jak nainstalovat LEMP Stack pomocí PhpMyAdmin v Ubuntu 20.04
- Nainstalujte Nginx se serverovými bloky (virtuální hostitelé) na Debian 10
- Jak používat Nginx jako HTTP Load Balancer v Linuxu
Jak povolit HTTP/2.0 v NGINX
Pokud máte nainstalovaný NGINX, ověřte, že byl sestaven s modulem ngx_http_v2_module
spuštěním následujícího příkazu.
strings /usr/sbin/nginx | grep _module | grep -v configure| sort | grep ngx_http_v2_module
Jakmile budete mít webovou stránku/aplikaci obsluhovanou službou NGINX s nakonfigurovaným HTTPS, otevřete soubor bloku virtuálního serveru (nebo virtuálního hostitele) pro editace.
vi /etc/nginx/conf.d/example.com.conf [On CentOS/RHEL]
sudo nano /etc/nginx/sites-available/example.com.conf [On Ubuntu/Debian]
Podporu HTTP/2 můžete povolit jednoduchým přidáním parametru http2
do všech direktiv listen
, jak je znázorněno na následujícím snímku obrazovky.
listen 443 ssl http2;
Ukázková konfigurace bloku serveru vypadá níže.
server {
server_name example.com www.example.com;
access_log /var/log/nginx/example.com_access.log;
error_log /var/log/nginx/example.com_error.log;
listen [::]:443 ssl ipv6only=on http2; # managed by Certbot
listen 443 ssl http2; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
Uložte změny do souboru a zavřete jej.
Poté zkontrolujte syntaxi konfigurace NGINX, pokud je v pořádku, restartujte službu Nginx.
nginx -t
systemctl restart nginx
Poté spusťte webový prohlížeč a ověřte, zda je váš web poskytován prostřednictvím HTTP/2.
http://www.example.com
Chcete-li získat přístup k hlavičkám HTTP, klikněte pravým tlačítkem myši na zobrazenou webovou stránku, vyberte ze seznamu možností Prozkoumat a otevřete nástroje pro vývojáře, poté klikněte na kartu Síť a znovu načtěte strana.
V části Protokoly se podívejte na ten, který vaše stránky používají (pokud nevidíte záhlaví Protocols, klikněte pravým tlačítkem myši na libovolné záhlaví, např. Name, a poté zaškrtněte Protokol ze seznamu, aby se zobrazil jako záhlaví).
Pokud váš web běží na HTTP/1.1, v části Protokol uvidíte http/1.1, jak je znázorněno na následujícím snímku obrazovky.
Pokud běží na HTTP/2, pod Protokol uvidíte h2
, jak je znázorněno na následujícím snímku obrazovky. Možná budete chtít deaktivovat mezipaměť prohlížeče, abyste viděli nejnovější obsah poskytovaný přímo z webového serveru.
To je vše! Další informace naleznete v dokumentaci modulu ngx_http_v2_module. Neváhejte klást otázky prostřednictvím formuláře pro zpětnou vazbu níže.