Wéi aktivéiert HTTP/2.0 an Nginx


HTTP/2 ass de leschten Standard fir den HTTP Protokoll, et ass den Nofolger vun HTTP/1.1. Et gëtt ëmmer méi populär wéinst de Virdeeler déi et fir Webentwéckler a Benotzer am Allgemengen bréngt. Et bitt en optimiséierten Transport fir HTTP Semantik andeems se all Kärfeatures vun HTTP/1.1 ënnerstëtzen, awer zielt méi effizient op verschidde Weeër ze sinn.

Et gi vill Features uewen op HTTP/2 déi Iech méi Méiglechkeeten ginn fir eng Websäit/Applikatioun ze optimiséieren. Et bitt richteg Multiplexing a Concurrency, besser Header Kompressioun (binär Kodéierung), besser Prioritéit, besser Flow Kontroll Mechanismen, an en neien Interaktiounsmodus genannt Server Push deen e Server erlaabt Äntwerten op e Client ze drécken. Net ze ernimmen, HTTP /2 baséiert op dem Google experimentellen SPDY Protokoll.

Dofir ass de primäre Fokus vun HTTP/2 d'Gesamtlaadzäit vun der Websäit ze reduzéieren, sou datt d'Performance verbessert gëtt. Et konzentréiert sech och op d'Netz- a Serverressourceverbrauch souwéi Sécherheet well mat HTTP/2 SSL/TLS Verschlësselung obligatoresch ass.

An dësem Artikel léiert Dir wéi Dir Nginx mat HTTP/2 Support op Linux Server aktivéiert.

  • Eng funktionéierend Installatioun vun der NGINX Versioun 1.9.5 oder méi héich, gebaut mam ngx_http_v2_module Modul.
  • Vergewëssert Iech datt Äre Site SSL/TLS Zertifikat benotzt, wann Dir keen hutt, kënnt Dir vum selbst ënnerschriwwenen Zertifika kréien.

Dir kënnt NGINX installéieren oder se mat engem LEMP-Stack ofsetzen wéi an de folgende Guiden beschriwwen:

  • Wéi installéiere ech Nginx op CentOS 8
  • Wéi installéiert ech LEMP Server op CentOS 8
  • Wéi installéiere ech NGINX, MySQL/MariaDB a PHP op RHEL 8
  • Wéi installéiert ech LEMP Stack mat PhpMyAdmin an Ubuntu 20.04
  • Installéieren Nginx mat Server Blocks (Virtuell Hosten) op Debian 10
  • Wéi benotzt Dir Nginx als HTTP Load Balancer a Linux

Wéi aktivéiert HTTP/2.0 an NGINX

Wann Dir NGINX installéiert hutt, kontrolléiert datt et mam ngx_http_v2_module Modul gebaut gouf andeems Dir de folgende Kommando ausféiert.

# strings /usr/sbin/nginx | grep _module | grep -v configure| sort | grep ngx_http_v2_module

Wann Dir eng Websäit/Applikatioun hutt, déi vun NGINX mat HTTPS konfiguréiert gëtt, öffnet Är Websäit virtuell Serverblock (oder virtuelle Host) Datei fir z'änneren.

# vi /etc/nginx/conf.d/example.com.conf                    [On CentOS/RHEL]
$ sudo nano /etc/nginx/sites-available/example.com.conf    [On Ubuntu/Debian]

Dir kënnt HTTP/2-Ënnerstëtzung aktivéieren andeems Dir einfach de Parameter http2 un all lauschteren Direktiven bäidréit wéi am folgenden Screenshot gewisen.

listen 443 ssl http2;

D'Probe Server Blockkonfiguratioun gesäit aus wéi hei drënner.

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    
}

Späichert d'Ännerungen an der Datei a maach se zou.

Da kontrolléiert d'Konfiguratiounssyntax vum NGINX, wann et OK ass, start den Nginx Service nei.

# nginx -t
# systemctl restart nginx

Als nächst, öffnen e Webbrowser fir z'iwwerpréiwen ob Är Websäit iwwer HTTP/2 zerwéiert gëtt.

http://www.example.com

Fir Zougang zu den HTTP-Header ze kréien, klickt riets op déi ugewisen Websäit, wielt Inspektéieren aus der Lëscht vun Optiounen fir d'Entwéckler Tools opzemaachen, klickt dann op de Tab Network, a lued d'Säit nei.

Kuckt ënner Protokoller fir ze gesinn deen Äre Site benotzt (wann Dir de Protokoll Header net gesitt, klickt op eng vun den Header, z.

Wann Äre Site op HTTP/1.1 leeft, ënner Protokoll, gesitt Dir http/1.1 wéi am folgenden Screenshot gewisen.

Wann et op HTTP/2 leeft, ënner Protokoll, gesitt Dir h2 wéi am folgenden Screenshot gewisen. Dir wëllt vläicht de Browser Cache auszeschalten fir de leschten Inhalt ze gesinn, deen direkt vum Webserver zerwéiert gëtt.

Dat ass alles! Fir méi Informatioun, kuckt d'ngx_http_v2_module Modul Dokumentatioun. Zéckt net Froen iwwer de Feedbackformular hei drënner ze stellen.