CH-J Server Managerupravljanje strežnikov prek SSH
Meni
Vsi vodiči in članki →

Kako preveriti, ali HTTP/3 in QUIC res delujeta

Zakaj glava Alt-Svc ni dokaz, kaj preveriti v NGINX in požarnem zidu ter kako potrditi dejanski prenos prek QUIC.

Oglaševana podpora še ne pomeni delovanja

Strežnik napove HTTP/3 v odzivni glavi Alt-Svc, ki jo odjemalec prejme prek HTTP/1.1 ali HTTP/2. Glava je le obljuba. HTTP/3 deluje prek QUIC na UDP, zato se stran lahko normalno naloži tudi ob povsem blokiranem UDP, brskalnik pa brez obvestila ostane pri HTTP/2.

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

Potrdite dejanski prenos

Samo dokončana zahteva prek QUIC potrjuje HTTP/3. Uporabite curl, zgrajen s podporo za HTTP/3; številni sistemski paketi je nimajo in zato zavrnejo možnost, kar ne pove ničesar o strežniku. V brskalniku odprite razvojna orodja in preberite stolpec s protokolom, ki za takšno zahtevo prikazuje h3. Ob prvem obisku lahko brskalnik uporabi HTTP/2, zato stran znova naložite.

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

Preverite konfiguracijo NGINX

NGINX poleg poslušanja na TCP potrebuje tudi poslušanje za QUIC, kar morata podpirati njegova različica in uporabljena gradnja. Zahtevan je TLS 1.3, ker ga QUIC uporablja neposredno. Pred ponovnim nalaganjem preverite konfiguracijo. Vrednost ma v Alt-Svc je čas v sekundah, za katerega si odjemalci zapomnijo obljubo, zato med preskušanjem uporabite kratko vrednost.

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

Odprite UDP 443 povsod na poti

Najpogostejši razlog za neuspeh je požarni zid, ki dovoli TCP 443, ne pa UDP 443. Preverite strežnik in vse zunanje filtre. Poslušanje na vtičnici lahko potrdite na strežniku. Nekatera poslovna in javna omrežja QUIC namerno blokirajo, zato neuspešen preskus iz enega omrežja ne dokazuje napake strežnika: ponovite ga iz drugega.

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

Je novi protokol hitrejši?

HTTP/3 najbolj pomaga pri povezavah z izgubo paketov ali menjavanjem omrežij, ker izgubljen paket ne zadrži drugih tokov. Pri dobri žični povezavi je razlika lahko majhna, poraba CPU na strežniku pa večja. Namesto da predpostavljate izboljšanje, izmerite svoj primer in ohranite HTTP/2 za odjemalce, ki ne morejo uporabljati UDP.

Preskus HTTP/3 v CH-J Server Manager

Server Diagnostics ima priložen odjemalec HTTP, zato preskus ni odvisen od sistemskega curl. HTTP/3 označi kot potrjen šele po dokončanem prenosu QUIC, Alt-Svc pa obravnava samo kot oglas podpore. Ob izteku časovne omejitve UDP navede, da podpora strežnika ostaja nepreverjena, ker je vzrok lahko v omrežju med vami in strežnikom, in prehoda na drug protokol ne šteje za uspeh.

Podrobna dokumentacija

RFC 9114: HTTP/3 →

NGINX: QUIC and HTTP/3 →

Biometrično odklenjevanje in varnost →