CH-J Server Managerservera pārvaldība virs SSH
Izvēlne
Visas pamācības un raksti →

Kā pārbaudīt, vai HTTP/3 un QUIC patiešām darbojas

Kāpēc Alt-Svc galvene nav pierādījums, ko pārbaudīt NGINX un ugunsmūrī un kā apstiprināt īstu QUIC pārsūtīšanu.

Paziņojums vēl nenozīmē darbību

Serveris paziņo par HTTP/3 atbildes galvenē Alt-Svc, ko klients saņem, izmantojot HTTP/1.1 vai HTTP/2. Galvene ir tikai solījums. HTTP/3 darbojas ar QUIC, izmantojot UDP, tāpēc lapa var ielādēties normāli arī tad, ja UDP ir pilnībā bloķēts, bet pārlūks bez brīdinājuma turpina izmantot HTTP/2.

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

Apstipriniet īstu pārsūtīšanu

Tikai pabeigts pieprasījums, izmantojot QUIC, apstiprina HTTP/3. Izmantojiet curl, kas kompilēts ar HTTP/3 atbalstu; daudzās sistēmas pakotnēs tā nav, tādēļ opcija tiek noraidīta, un tas neko nepasaka par serveri. Pārlūkā atveriet izstrādātāju rīkus un skatiet kolonnu Protocol, kur šādam pieprasījumam redzams h3. Pirmajā apmeklējumā pārlūks var izmantot HTTP/2, tāpēc ielādējiet lapu vēlreiz.

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

Pārbaudiet NGINX konfigurāciju

NGINX līdzās TCP klausīšanās ligzdai vajadzīga QUIC klausīšanās ligzda, un tā jāatbalsta gan versijai, gan tās kompilācijai. Vajadzīgs TLS 1.3, jo QUIC to izmanto tieši. Pirms konfigurācijas pārlādes pārbaudiet to. Alt-Svc vērtība ma ir laiks sekundēs, cik ilgi klienti atceras solījumu, tādēļ testējot izmantojiet īsu laiku.

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

Atveriet UDP 443 visā ceļā

Biežākais kļūmes cēlonis ir ugunsmūris, kas atļauj TCP 443, bet neatļauj UDP 443. Pārbaudiet serveri un visus ārējos filtrus. Serverī var apstiprināt, ka ligzda klausās. Daži uzņēmumu un publiskie tīkli apzināti bloķē QUIC, tāpēc neveiksmīgs tests no viena tīkla nepierāda servera vainu: atkārtojiet to no cita tīkla.

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

Vai jaunais protokols ir ātrāks?

HTTP/3 visvairāk palīdz savienojumos ar pakešu zudumiem vai tīkla maiņu, jo pazaudēta pakete neaiztur citas plūsmas. Labā vadu savienojumā atšķirība var būt maza, bet servera CPU noslodze var pieaugt. Izmēriet savu situāciju, nevis pieņemiet, ka būs uzlabojums, un saglabājiet HTTP/2 pieejamu klientiem, kuri nevar izmantot UDP.

HTTP/3 tests programmā CH-J Server Manager

Server Diagnostics ir iebūvēts HTTP klients, tāpēc tests nav atkarīgs no sistēmas curl. Tas ziņo par apstiprinātu HTTP/3 tikai pēc pabeigtas QUIC pārsūtīšanas un Alt-Svc uzskata tikai par paziņojumu. UDP noildzes gadījumā tas norāda, ka servera atbalsts joprojām nav pārbaudīts, jo cēlonis var būt tīkls starp jums un serveri, un atkāpšanos uz citu protokolu neuzskata par panākumu.

Sīki izstrādāta dokumentācija

RFC 9114: HTTP/3 →

NGINX: QUIC and HTTP/3 →

Biometriskā atbloķēšana un drošība →