Wprowadzenie do protokołu HTTP/3 Oczywiście ważną różnicą w stosunku do protokołu HTTP/3
jest to, że działa on na nowym protokole transportowym QUIC. QUIC jest przeznaczony do intensywnego korzystania z urządzeń mobilnych w Internecie, a ludzie noszą smartfony, które stale przełączają się z jednej sieci do drugiej w ciągu dnia. Kiedy opracowano pierwsze protokoły internetowe, tak nie było: urządzenia były mniej przenośne i nie przełączały się często między sieciami.
Innymi słowy, QUIC pomoże naprawić niektóre z największych wad protokołu HTTP/2:
-
Opracowanie rozwiązania problemu słabej wydajności przy przełączaniu smartfona z Wi-Fi na komórkową transmisję danych (np. podczas wychodzenia z domu lub biura)
-
Zmniejszenie skutków utraty pakietów - gdy jeden pakiet informacji nie dotrze do miejsca docelowego, nie blokuje już wszystkich strumieni informacji (problem znany jako "blokowanie nagłówka linii").
Nawiasem mówiąc, protokół QUIC został opracowany przez Google w 2012 roku i przyjęty przez Internet Engineering Task Force (IETF) — niezależną od dostawcy organizację standaryzacyjną — kiedy zaczęli tworzyć nowy standard HTTP/3. Po konsultacjach z ekspertami z całego świata, IETF dokonał wielu zmian, aby opracować własną wersję QUIC.
Włącz obsługę protokołu HTTP/3 w Nginx Obsługa protokołów QUIC i HTTP/3 jest dostępna od wersji 1.25.0. Ponadto, począwszy od wersji 1.25.0, obsługa jest dostępna w gotowych pakietach dla systemu Linux
.
Obsługa QUIC i HTTP/3 jest eksperymentalna, więc wszystko jest możliwe.
Sprawdzanie wersji nginx:Upewnianie się, że wersja jest poprawna:
nginx -v
$ nginx version: nginx/1.25.3
Do budowania nginx zalecana jest biblioteka SSL z obsługą QUIC, taka jak BoringSSL, LibreSSL lub QuicTLS. W przeciwnym razie, podczas korzystania z biblioteki OpenSSL, zostanie użyta warstwa zgodności OpenSSL, która nie obsługuje wczesnych danych.
Mamy więc standardowy wirtualny host nginx z HTTP/2:Teraz uzupełnijmy go dyrektywami umożliwiającymi HTTP/3:Zasadniczo to wszystko, jeśli masz problemy z połączeniem, upewnij się, że:
server
{
listen 443 ssl;
# включаем поддержку http2
http2 on;
ssl_protocols TLSv1.2;
ssl_certificate /path_certs/fullchain.pem;
ssl_certificate_key path_certs/privkey.pem;
...
}
server
{
# для лучшей совместимости рекомендуется использовать один порт для quic и https
# указываем протокол quic и параметр reuseport для правильной работы с несколькими рабочими процессами
listen 443 quic reuseport;
listen 443 ssl;
# включаем поддержку http2
http2 on;
# включаем поддержку http3
http3 on;
# разрешаем GSO
quic_gso on;
# разрешаем проверку адреса
quic_retry on;
# Для работы QUIC требуется версия протокола TLSv1.3.
ssl_protocols TLSv1.2 TLSv1.3;
ssl_certificate /path_certs/fullchain.pem;
ssl_certificate_key path_certs/privkey.pem;
# для перенаправления браузеров в quic-порт
add_header Alt-Svc 'h3=":443";max=86400';
...
}
-
że nginx jest zbudowany z poprawną biblioteką SSL i wersją
-
, którą klient naprawdę obsługuje współpracując z QUIC
Po wprowadzeniu zmian i ponownym uruchomieniu serwera WWW możesz sprawdzić obsługę HTTP/3 za pośrednictwem usługi lub teraz możesz od razu sprawdzić witrynę poniżej w polu.