Vyhledávání na webu

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.