CH-J Server Managerδιαχείριση διακομιστή πάνω από SSH
Μενού
Όλοι οι οδηγοί και τα άρθρα →

Πώς να επαληθεύσετε ότι τα HTTP/3 και QUIC λειτουργούν πραγματικά

Γιατί μια κεφαλίδα Alt-Svc δεν αποτελεί απόδειξη, τι να ελέγξετε στο NGINX και στο τείχος προστασίας και πώς να επιβεβαιώσετε πραγματική μεταφορά μέσω QUIC.

Η αναγγελία δεν εγγυάται τη λειτουργία

Ο διακομιστής αναγγέλλει το HTTP/3 στην κεφαλίδα απόκρισης Alt-Svc, την οποία ο πελάτης λαμβάνει μέσω HTTP/1.1 ή HTTP/2. Η κεφαλίδα είναι απλώς μια υπόσχεση. Το HTTP/3 λειτουργεί μέσω QUIC πάνω από UDP, οπότε η σελίδα μπορεί να φορτωθεί κανονικά με το UDP εντελώς αποκλεισμένο και το πρόγραμμα περιήγησης να παραμείνει αθόρυβα στο HTTP/2.

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

Επιβεβαιώστε πραγματική μεταφορά

Μόνο ένα ολοκληρωμένο αίτημα μέσω QUIC επιβεβαιώνει το HTTP/3. Χρησιμοποιήστε curl μεταγλωττισμένο με υποστήριξη HTTP/3· πολλά πακέτα του συστήματος δεν την περιλαμβάνουν και τότε η επιλογή απορρίπτεται, κάτι που δεν λέει τίποτα για τον διακομιστή. Στο πρόγραμμα περιήγησης ανοίξτε τα εργαλεία προγραμματιστή και δείτε τη στήλη πρωτοκόλλου, όπου εμφανίζεται h3 για τέτοιο αίτημα. Στην πρώτη επίσκεψη μπορεί να χρησιμοποιηθεί HTTP/2, γι’ αυτό φορτώστε ξανά τη σελίδα.

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

Ελέγξτε τη διαμόρφωση του NGINX

Το NGINX χρειάζεται σημείο ακρόασης QUIC παράλληλα με εκείνο του TCP και πρέπει να το υποστηρίζουν τόσο η έκδοση όσο και η μεταγλώττισή του. Απαιτείται TLS 1.3, επειδή το QUIC το χρησιμοποιεί απευθείας. Ελέγξτε τη διαμόρφωση πριν την επαναφόρτωση. Η τιμή ma στο Alt-Svc είναι ο χρόνος σε δευτερόλεπτα για τον οποίο οι πελάτες θυμούνται την υπόσχεση, οπότε στις δοκιμές χρησιμοποιήστε μικρή τιμή.

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

Επιτρέψτε το UDP 443 σε όλη τη διαδρομή

Η συχνότερη αιτία αποτυχίας είναι ένα τείχος προστασίας που επιτρέπει TCP 443 αλλά όχι UDP 443. Ελέγξτε τον διακομιστή και κάθε εξωτερικό φίλτρο. Μπορείτε να επιβεβαιώσετε στον διακομιστή ότι η υποδοχή βρίσκεται σε ακρόαση. Ορισμένα εταιρικά και δημόσια δίκτυα αποκλείουν σκόπιμα το QUIC, οπότε μια αποτυχημένη δοκιμή από ένα δίκτυο δεν αποδεικνύει πρόβλημα στον διακομιστή: επαναλάβετε από άλλο δίκτυο.

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

Είναι ταχύτερο το νέο πρωτόκολλο;

Το HTTP/3 βοηθά περισσότερο σε συνδέσεις με απώλειες πακέτων ή αλλαγές δικτύου, επειδή ένα χαμένο πακέτο δεν καθυστερεί τις άλλες ροές. Σε καλή ενσύρματη σύνδεση η διαφορά μπορεί να είναι μικρή και η χρήση CPU στον διακομιστή μεγαλύτερη. Μετρήστε τη δική σας περίπτωση αντί να θεωρείτε δεδομένο το όφελος και διατηρήστε διαθέσιμο το HTTP/2 για πελάτες που δεν μπορούν να χρησιμοποιήσουν UDP.

Η δοκιμή HTTP/3 στο CH-J Server Manager

Το Server Diagnostics περιλαμβάνει ενσωματωμένο πελάτη HTTP, επομένως η δοκιμή δεν εξαρτάται από το curl του συστήματος. Αναφέρει το HTTP/3 ως επιβεβαιωμένο μόνο μετά από ολοκληρωμένη μεταφορά QUIC και αντιμετωπίζει το Alt-Svc μόνο ως αναγγελία. Σε λήξη χρονικού ορίου UDP αναφέρει ότι η υποστήριξη του διακομιστή παραμένει ανεπιβεβαίωτη, επειδή η αιτία μπορεί να βρίσκεται στο δίκτυο ανάμεσα σε εσάς και τον διακομιστή, και δεν θεωρεί επιτυχία τη μετάπτωση σε άλλο πρωτόκολλο.

Λεπτομερής τεκμηρίωση

RFC 9114: HTTP/3 →

NGINX: QUIC and HTTP/3 →

Βιομετρική ξεκλείδωμα και ασφάλεια →