CH-J Server Managerserverhantering över SSH
Menyn
Alla guider och artiklar →

Så verifierar du att HTTP/3 och QUIC verkligen fungerar

Varför en Alt-Svc-header inte är ett bevis, vad du ska kontrollera i NGINX och brandväggen samt hur du bekräftar en verklig QUIC-överföring.

Annonserat är inte detsamma som fungerande

En server annonserar HTTP/3 i svarshuvudet Alt-Svc, som klienten tar emot via HTTP/1.1 eller HTTP/2. Huvudet är bara ett löfte. HTTP/3 körs över QUIC på UDP, så sidan kan laddas normalt även om UDP är helt blockerat, medan webbläsaren utan att säga till fortsätter med HTTP/2.

curl -sI https://server.example/ | grep -i alt-svc

Bekräfta en verklig överföring

Endast en slutförd begäran över QUIC bekräftar HTTP/3. Använd en curl som byggts med stöd för HTTP/3; många systempaket saknar det, och då avvisas alternativet, vilket inte säger något om servern. Öppna utvecklarverktygen i webbläsaren och läs protokollkolumnen, som visar h3 för en sådan begäran. Webbläsaren kan använda HTTP/2 vid första besöket, så ladda sidan igen.

curl -V | grep -i http3
curl -sS --http3-only -o /dev/null -w '%{http_version}\n' https://server.example/

Kontrollera NGINX-konfigurationen

NGINX behöver en QUIC-lyssnare utöver TCP-lyssnaren, och versionen och dess bygge måste stödja detta. TLS 1.3 krävs eftersom QUIC använder det direkt. Kontrollera konfigurationen innan du laddar om den. Värdet ma i Alt-Svc anger tiden i sekunder som klienterna minns löftet, så använd ett kort värde under testning.

listen 443 ssl;
listen 443 quic reuseport;
http2 on;
add_header Alt-Svc 'h3=":443"; ma=300' always;

nginx -V 2>&1 | grep -o with-http_v3_module
sudo nginx -t

Öppna UDP 443 längs hela vägen

Den vanligaste orsaken till fel är en brandvägg som tillåter TCP 443 men inte UDP 443. Kontrollera servern och alla externa filter. Att en socket lyssnar kan bekräftas på servern. Vissa företagsnät och publika nät blockerar QUIC avsiktligt, så ett misslyckat test från ett nät bevisar inte att felet ligger på servern: upprepa det från ett annat.

sudo ss -lunp | grep ':443'
sudo ufw allow 443/udp
sudo tcpdump -ni any udp port 443

Är det nya protokollet snabbare?

HTTP/3 hjälper mest på anslutningar med paketförluster eller vid nätverksbyten, eftersom ett förlorat paket inte fördröjer andra strömmar. På en bra kabelanslutning kan skillnaden vara liten och CPU-användningen på servern kan vara högre. Mät ditt eget fall i stället för att förutsätta en vinst och behåll HTTP/2 för klienter som inte kan använda UDP.

HTTP/3-testet i CH-J Server Manager

Server Diagnostics har en medföljande HTTP-klient, så testet är inte beroende av systemets curl. Det rapporterar HTTP/3 som bekräftat först efter en slutförd QUIC-överföring och behandlar Alt-Svc enbart som en annons om stöd. Vid en UDP-timeout anges att serverstödet fortfarande är overifierat, eftersom orsaken kan ligga i nätverket mellan dig och servern, och en övergång till ett annat protokoll räknas inte som ett lyckat test.

Detaljerad dokumentation

RFC 9114: HTTP/3 →

NGINX: QUIC and HTTP/3 →

Biometrisk upplåsning och säkerhet →