Zoeken op website

Hoe HTTP/2.0 in Nginx in te schakelen


HTTP/2 is de nieuwste standaard voor het HTTP protocol, het is de opvolger van HTTP/1.1. Het wordt steeds populairder vanwege de voordelen die het biedt voor webontwikkelaars en gebruikers in het algemeen. Het biedt een geoptimaliseerd transport voor HTTP-semantiek door alle kernfuncties van HTTP/1.1 te ondersteunen, maar heeft tot doel op meerdere manieren efficiënter te zijn.

Naast HTTP/2 zijn er veel functies die u meer mogelijkheden bieden om een website/applicatie te optimaliseren. Het biedt echte multiplexing en gelijktijdigheid, betere headercompressie (binaire codering), betere prioritering, betere mechanismen voor stroomcontrole en een nieuwe interactiemodus genaamd “server push” waarmee een server reacties naar een client kan pushen . En niet te vergeten: HTTP/2 is gebaseerd op het experimentele SPDY-protocol van Google.

Daarom is de primaire focus van HTTP/2 het verkorten van de algehele laadtijd van webpagina's, waardoor de prestaties worden verbeterd. Het richt zich ook op het gebruik van netwerk- en serverbronnen en op de beveiliging, omdat bij HTTP/2 SSL/TLS-codering verplicht is.

In dit artikel leert u hoe u Nginx met HTTP/2-ondersteuning in Linux-servers kunt inschakelen.

Vereisten:

  • Een werkende installatie van NGINX versie 1.9.5 of hoger, gebouwd met de ngx_http_v2_module module.
  • Zorg ervoor dat uw site een SSL/TLS-certificaat gebruikt. Als u er geen heeft, kunt u deze verkrijgen bij Let's Encrypt of een zelfondertekend certificaat gebruiken.

U kunt NGINX installeren of implementeren met een LEMP-stack, zoals beschreven in de volgende handleidingen:

  • Hoe Nginx op CentOS 8 te installeren
  • Hoe LEMP-server op CentOS 8 te installeren
  • NGINX, MySQL/MariaDB en PHP installeren op RHEL 8
  • Hoe LEMP Stack te installeren met PhpMyAdmin in Ubuntu 20.04
  • Installeer Nginx met serverblokken (virtuele hosts) op Debian 10
  • Hoe Nginx te gebruiken als HTTP Load Balancer in Linux

HTTP/2.0 inschakelen in NGINX

Als NGINX is geïnstalleerd, controleer dan of het is gebouwd met de ngx_http_v2_module module door de volgende opdracht uit te voeren.

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

Zodra u een website/applicatie heeft die wordt bediend door NGINX met HTTPS geconfigureerd, opent u het virtuele serverblokbestand (of virtuele host) van uw website voor bewerken.

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

U kunt HTTP/2-ondersteuning inschakelen door simpelweg de parameter http2 toe te voegen aan alle listen-richtlijnen, zoals weergegeven in de volgende schermafbeelding.

listen 443 ssl http2;

De voorbeeldserverblokconfiguratie ziet er als volgt uit.


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    
}

Sla de wijzigingen op in het bestand en sluit het.

Controleer vervolgens de configuratiesyntaxis van NGINX. Als deze in orde is, start u de Nginx-service opnieuw op.

nginx -t
systemctl restart nginx

Open vervolgens een webbrowser om te verifiëren of uw website wordt aangeboden via HTTP/2.

http://www.example.com

Om toegang te krijgen tot de HTTP-headers klikt u met de rechtermuisknop op de weergegeven webpagina, selecteert u Inspecteren in de lijst met opties om de ontwikkelaarstools te openen, klikt u vervolgens op het tabblad Netwerk en laadt u opnieuw de pagina.

Kijk onder Protocollen om te zien welke uw site gebruikt (als u de kop Protocollen niet ziet, klik dan met de rechtermuisknop op een van de kopteksten, bijvoorbeeld Naam, en vink vervolgens Protocol uit de lijst om het als koptekst weer te geven).

Als uw site draait op HTTP/1.1, ziet u onder Protocol http/1.1, zoals weergegeven in de volgende schermafbeelding.

Als het op HTTP/2 draait, zie je onder Protocol h2, zoals weergegeven in de volgende schermafbeelding. Mogelijk wilt u de browsercache uitschakelen om de nieuwste inhoud te bekijken die rechtstreeks vanaf de webserver wordt aangeboden.

Dat is alles! Zie de moduledocumentatie van ngx_http_v2_module voor meer informatie. Aarzel niet om vragen te stellen via het onderstaande feedbackformulier.