Hoe HTTP/2 (en HTTP/3) in te schakelen: Nginx, Apache, CDN
Wilt u snellere laadtijden? Schakel HTTP/2 in en, indien mogelijk, HTTP/3. Deze gids laat zien hoe u beide inschakelt op Nginx, Apache en gangbare CDN's, hoe u controleert of ze werken en snelle oplossingen als ze dat niet doen.
Waarom HTTP/2 (en HTTP/3)?
HTTP/1.1 opent meerdere verbindingen en herhaalt headers. HTTP/2 multiplexeert verzoeken over één verbinding en comprimeert headers. HTTP/3 voegt QUIC over UDP toe om transport-level blocking te voorkomen. Resultaat: snellere laadtijden, vooral op mobiele apparaten en verbindingen met hoge latentie.
Snelle controles: zijn ze ingeschakeld?
- DevTools: Netwerk tabblad > voeg "Protocol" kolom toe. Zoek naar h2 of h3.
- CLI:
curl -I --http2 https://example.com
- HTTP/3:
curl -I --http3 https://example.com
(recente curl) - Waterfalls: Veel bestanden moeten tegelijkertijd op één verbinding starten.
Nginx: HTTP/2 (en HTTP/3) inschakelen
server {
# HTTP/2
listen 443 ssl http2;
listen [::]:443 ssl http2;
# Uncomment indien uw build QUIC ondersteunt
# listen 443 quic reuseport;
# add_header Alt-Svc 'h3=":443"; ma=86400' always;
server_name example.com;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers off;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1d;
add_header Strict-Transport-Security "max-age=31536000" always;
# uw SSL cert configuratie hier
}
Vereisten: HTTP/2 module gecompileerd, TLS bibliotheek met ALPN ondersteuning. De meeste moderne pakketten bevatten beide.
Apache: HTTP/2 inschakelen
# Laad de module
LoadModule http2_module modules/mod_http2.so
# Globaal of in een vhost inschakelen
Protocols h2 http/1.1
# Optioneel: beperken tot moderne TLS
H2ModernTLSOnly on
Apache HTTP/3 ondersteuning is experimenteel. Gebruik HTTP/2 voor productie.
CDN: HTTP/2/3 inschakelen (Cloudflare, CloudFront, Akamai, Fastly)
De meeste CDN's ondersteunen HTTP/2 en HTTP/3. Schakel ze in voor HTTPS-verkeer. Open UDP/443 als u uw eigen edge draait en HTTP/3 wilt. Als UDP geblokkeerd is, vallen clients terug op HTTP/2. Het protocol van CDN naar origin is apart; gebruik het als het eenvoudig is, maar de impact op de gebruiker komt van de edge.
Cloudflare
Dashboard > Speed > Optimization > HTTP/2 en HTTP/3 (standaard ingeschakeld)
AWS CloudFront
Distributie-instellingen > Ondersteunde HTTP-versies > HTTP/2 en HTTP/3
Fastly
Serviceconfiguratie > Instellingen > HTTP/2 en HTTP/3 ondersteuning
Verifiëren + fallback gedrag
Browsers onderhandelen automatisch tijdens de TLS-handshake via ALPN. Als HTTP/3 faalt (UDP geblokkeerd), vallen ze terug op HTTP/2. Als HTTP/2 faalt (oude server), gebruiken ze HTTP/1.1. Geen handmatige interventie nodig.
Controleer uw setup:
- Moderne browsers tonen h2/h3 in de DevTools Protocol kolom
- Waterfall grafieken tonen parallelle downloads op één verbinding
- H3 helpt vaak mobiele/verliesgevende verbindingen meer dan desktop
Probleemoplossing
HTTP/2 werkt niet?
- Controleer of uw serverbuild de HTTP/2 module bevat
- Verifieer dat de TLS bibliotheek ALPN ondersteunt (OpenSSL 1.0.2+)
- Zorg ervoor dat u test via HTTPS (browsers vereisen dit)
- Controleer of een proxy/load balancer terugvalt naar HTTP/1.1
HTTP/3 werkt niet?
- Verifieer dat UDP poort 443 open is
- Controleer of uw build QUIC ondersteunt
- Bevestig dat de Alt-Svc header wordt verzonden
- Test vanaf verschillende netwerken (sommige blokkeren UDP)
Veelgestelde vragen
Heb ik HTTPS nodig voor HTTP/2?
Ja. Browsers gebruiken HTTP/2 alleen over TLS.
Is HTTP/3 vereist?
Nee, maar schakel het in wanneer u kunt. Houd HTTP/2 als fallback.
Hoe controleer ik of HTTP/2/3 actief is?
Gebruik de Protocol kolom van DevTools, of voer curl uit met --http2 of --http3.
Waarom veranderde het inschakelen van HTTP/2 niet veel?
App-traagheid en netwerkverlies gelden nog steeds. Cache en profileer uw app; gebruik HTTP/3 voor verliesgevende verbindingen.