CH-J Server Managerpengurusan pelayan melalui SSH
Menu
Semua panduan dan artikel →

Cara mengesahkan HTTP/3 dan QUIC benar-benar berfungsi

Mengapa pengepala Alt-Svc bukan bukti, perkara yang perlu disemak dalam NGINX dan firewall, serta cara mengesahkan pemindahan QUIC sebenar.

Diiklankan tidak semestinya berfungsi

Pelayan mengumumkan HTTP/3 dalam pengepala respons Alt-Svc, yang diterima klien melalui HTTP/1.1 atau HTTP/2. Pengepala itu hanyalah janji. HTTP/3 berjalan melalui QUIC pada UDP, jadi halaman boleh dimuatkan seperti biasa walaupun UDP disekat sepenuhnya, dan pelayar terus menggunakan HTTP/2 tanpa sebarang pemberitahuan.

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

Sahkan pemindahan sebenar

Hanya permintaan yang selesai melalui QUIC mengesahkan HTTP/3. Gunakan curl yang dibina dengan sokongan HTTP/3; banyak pakej sistem tidak menyertakannya, lalu pilihan itu ditolak, dan ini tidak memberikan sebarang kesimpulan tentang pelayan. Dalam pelayar, buka alat pembangun dan lihat lajur Protocol, yang memaparkan h3 bagi permintaan sedemikian. Pelayar mungkin menggunakan HTTP/2 pada lawatan pertama, jadi muatkan halaman sekali lagi.

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

Semak konfigurasi NGINX

NGINX memerlukan pendengar QUIC selain pendengar TCP, dan versi serta binaannya mesti menyokongnya. TLS 1.3 diperlukan kerana QUIC menggunakannya secara langsung. Semak konfigurasi sebelum memuatkannya semula. Nilai ma dalam Alt-Svc ialah tempoh dalam saat klien mengingati janji itu, jadi gunakan nilai yang singkat semasa menguji.

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

Buka UDP 443 di seluruh laluan

Punca kegagalan yang paling kerap ialah firewall yang membenarkan TCP 443 tetapi tidak membenarkan UDP 443. Semak pelayan dan sebarang penapis luaran. Anda boleh mengesahkan pada pelayan bahawa soket sedang mendengar. Sesetengah rangkaian korporat dan awam sengaja menyekat QUIC, jadi ujian yang gagal dari satu rangkaian tidak membuktikan pelayan bermasalah: ulanginya dari rangkaian lain.

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

Adakah protokol baharu lebih pantas?

HTTP/3 paling membantu pada sambungan yang mengalami kehilangan paket atau pertukaran rangkaian, kerana paket yang hilang tidak menahan aliran lain. Pada sambungan berwayar yang baik, perbezaannya mungkin kecil dan penggunaan CPU pelayan mungkin lebih tinggi. Ukur dalam keadaan anda sendiri dan bukannya menganggap prestasi pasti meningkat, dan kekalkan HTTP/2 untuk klien yang tidak boleh menggunakan UDP.

Ujian HTTP/3 dalam CH-J Server Manager

Server Diagnostics menyertakan klien HTTP, jadi ujian tidak bergantung pada curl sistem. Ia melaporkan HTTP/3 sebagai disahkan hanya selepas pemindahan QUIC selesai dan menganggap Alt-Svc sebagai iklan sahaja. Apabila UDP tamat masa, ia menyatakan bahawa sokongan pelayan masih belum disahkan kerana puncanya mungkin rangkaian antara anda dengan pelayan, dan ia tidak mengira peralihan kepada protokol lain sebagai kejayaan.

Dokumentasi terperinci

RFC 9114: HTTP/3 →

NGINX: QUIC and HTTP/3 →

Buka kunci biometrik dan keselamatan →