Sådan aktiveres HTTP/2.0 i Nginx


HTTP/2 er den nyeste standard for HTTP-protokollen, det er efterfølgeren til HTTP/1.1. Det bliver stadig mere populært på grund af de fordele, det medfører for webudviklere og brugere generelt. Det giver en optimeret transport til HTTP-semantik ved at understøtte alle kernefunktionerne i HTTP/1.1, men sigter mod at være mere effektiv på flere måder.

Der er mange funktioner oven på HTTP/2, der giver dig flere muligheder for at optimere et websted/en applikation. Det giver ægte multiplexing og samtidighed, bedre headerkomprimering (binær kodning), bedre prioritering, bedre flowkontrolmekanismer og en ny interaktionstilstand kaldet “server push”, der gør det muligt for en server at skubbe svar til en klient. For ikke at nævne er HTTP/2 baseret på Googles eksperimentelle SPDY-protokol.

Derfor er det primære fokus for HTTP/2 at reducere den samlede indlæsningstid på websiden og dermed forbedre ydeevnen. Det fokuserer også på brug af netværk og serverressourcer samt sikkerhed, fordi SSL/TLS-kryptering med HTTP/2 er obligatorisk.

I denne artikel lærer du, hvordan du aktiverer Nginx med HTTP/2-understøttelse på Linux-servere.

  • En fungerende installation af NGINX version 1.9.5 eller højere, bygget med ngx_http_v2_module-modulet.
  • Sørg for, at dit websted bruger SSL/TLS-certifikat. Hvis du ikke har et, kan du få fra Lad os kryptere eller bruge et selvsigneret certifikat.

Du kan installere NGINX eller implementere den med en LEMP-stak som beskrevet i følgende vejledninger:

  • Sådan installeres Nginx på CentOS 8
  • Sådan installeres LEMP-server på CentOS 8
  • Sådan installeres NGINX, MySQL/MariaDB og PHP på RHEL 8
  • Sådan installeres LEMP Stack med PhpMyAdmin i Ubuntu 20.04
  • Installer Nginx med serverblokke (virtuelle værter) på Debian 10
  • Sådan bruges Nginx som en HTTP-belastningsbalancer i Linux

Sådan aktiveres HTTP/2.0 i NGINX

Hvis du har NGINX installeret, skal du kontrollere, at det blev bygget med ngx_http_v2_module modulet ved at køre følgende kommando.

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

Når du har et websted/en applikation, der betjenes af NGINX med HTTPS konfigureret, skal du åbne din websides virtuelle serverblok (eller virtuelle vært) -fil til redigering.

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

Du kan aktivere HTTP/2-understøttelse ved blot at tilføje parameteren http2 til alle listen -direktiver som vist i følgende skærmbillede.

listen 443 ssl http2;

Eksempel på serverblokkonfiguration ser ud som nedenfor.

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    
}

Gem ændringerne i filen, og luk den.

Kontroller derefter NGINXs konfigurationssyntaks, hvis det er OK, genstart Nginx-tjenesten.

# nginx -t
# systemctl restart nginx

Åbn derefter en webbrowser for at kontrollere, om dit websted serveres via HTTP/2.

http://www.example.com

For at få adgang til HTTP-overskrifter skal du højreklikke på den viste webside, vælge Inspicer på listen over muligheder for at åbne udviklerværktøjerne, derefter klikke på fanen Netværk og indlæse siden igen.

Tjek under Protokoller for at se den, dit websted bruger (hvis du ikke kan se protokollens overskrift, skal du højreklikke på et af overskrifterne, f.eks. Navn, og derefter kontrollere Protokol fra listen for at få vist den som en overskrift).

Hvis dit websted kører på HTTP/1.1, under protokol, vil du se http/1.1 som vist i følgende skærmbillede.

Hvis den kører på HTTP/2 under Protokol, vil du se h2 som vist i det følgende skærmbillede. Det kan være en god idé at deaktivere browserens cache for at se det nyeste indhold, der vises direkte fra webserveren.

Det er alt! For yderligere oplysninger, se dokumentationen til modulet ngx_http_v2_module. Tøv ikke med at stille spørgsmål via feedbackformularen nedenfor.