CH-J Server Managerpamamahala ng server sa pamamagitan ng SSH
Menu
Lahat ng gabay at artikulo →

Paano tiyaking talagang gumagana ang HTTP/3 at QUIC

Bakit hindi patunay ang Alt-Svc header, ano ang susuriin sa NGINX at firewall, at paano kumpirmahin ang totoong QUIC transfer.

Ang ipinapahayag na suporta ay hindi katiyakang gumagana

Ipinapahayag ng server ang HTTP/3 sa Alt-Svc response header, na natatanggap ng client sa HTTP/1.1 o HTTP/2. Pangako lamang ang header. Gumagana ang HTTP/3 sa QUIC sa ibabaw ng UDP, kaya maaaring normal na mag-load ang pahina kahit lubusang nakaharang ang UDP, at tahimik na manatili ang browser sa HTTP/2.

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

Kumpirmahin ang totoong transfer

Tanging isang nakumpletong request sa QUIC ang nagpapatunay sa HTTP/3. Gumamit ng curl na binuo na may suporta sa HTTP/3; marami sa mga system package ang wala nito, kaya tinatanggihan ang option, na walang sinasabi tungkol sa server. Sa browser, buksan ang developer tools at tingnan ang Protocol column, na nagpapakita ng h3 para sa ganitong request. Maaaring gumamit ang browser ng HTTP/2 sa unang pagbisita, kaya i-load muli ang pahina.

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

Suriin ang NGINX configuration

Kailangan ng NGINX ng QUIC listener kasama ng TCP listener, at dapat itong suportahan ng bersiyon at build nito. Kailangan ang TLS 1.3 dahil direkta itong ginagamit ng QUIC. Suriin ang configuration bago mag-reload. Ang ma value sa Alt-Svc ay ang tagal sa segundo na tatandaan ng mga client ang pangako, kaya gumamit ng maikling tagal habang sumusubok.

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

Buksan ang UDP 443 sa buong daanan

Ang pinakakaraniwang dahilan ng pagkabigo ay firewall na nagpapahintulot sa TCP 443 ngunit hindi sa UDP 443. Suriin ang server at anumang panlabas na filter. Maaaring kumpirmahin sa server kung nakikinig ang socket. Sadyang hinaharangan ng ilang corporate at pampublikong network ang QUIC, kaya hindi patunay na may problema ang server kapag pumalya ang pagsubok mula sa isang network: ulitin ito mula sa iba.

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

Mas mabilis ba ang bagong protocol?

Pinakamalaking tulong ang HTTP/3 sa mga koneksiyong may packet loss o nagpapalit ng network, dahil hindi pinaghihintay ng nawawalang packet ang ibang stream. Sa maayos na wired connection, maaaring maliit ang pagkakaiba at maaaring mas mataas ang paggamit ng CPU sa server. Sukatin ang sarili mong sitwasyon sa halip na ipagpalagay na may pagbuti, at panatilihing magagamit ang HTTP/2 para sa mga client na hindi makagamit ng UDP.

Ang HTTP/3 test sa CH-J Server Manager

May kasamang HTTP client ang Server Diagnostics, kaya hindi nakadepende ang test sa system curl. Iniuulat lang nitong kumpirmado ang HTTP/3 pagkatapos ng nakumpletong QUIC transfer at itinuturing nitong pahayag lamang ng suporta ang Alt-Svc. Kapag nag-timeout ang UDP, sinasabi nitong hindi pa beripikado ang suporta ng server dahil maaaring ang network sa pagitan mo at ng server ang sanhi, at hindi nito itinuturing na tagumpay ang paglipat sa ibang protocol.

Detalyadong dokumentasyon

RFC 9114: HTTP/3 →

NGINX: QUIC and HTTP/3 →

Biometric na pag-unlock at seguridad →