QUIC+HTTP/3 向けの NGINX インスパイアの プレビュー実装 が、2 のビルド済みバイナリ パッケージとしてすぐに利用できるようになったことをうれしく思います。ディストリビューション:
バイナリは quic 別の分割 nginx-quic プレビュー実装をホストするレポ。 私たちが NGINX で QUIC+HTTP/3 の作業を開始して以来 、そうであるように、おそらくあなたにはオプションがあるでしょう。 ダウンロードして開発する NGINX QUIC+HTTP/3 とさまざまな SSL/TLS ライブラリを備えたソースを開始クイック。 コードは実験的とされていますが、むしろ多くの近所の人々が nginx-quic
ビルド済みのバイナリをリリースするための最も必要な動機は、QUIC+HTTP/3 を使用した NGINX をより早く簡単に確認できるようにすることです。 バイナリは、ソースからコンパイルする必要がなくなり、通常のキット管理ツールを使用して追加でインストールされる可能性があります.
ソース SSL/TLS、OpenSSL は QUIC を刺激しません。 この事実を踏まえて、quictls ライブラリ キットを使用してバイナリ ディストリビューションを開発できます。依存。 現在、安定性、互換性、および側面の最も生産的な組み合わせを表す糸で quictl を選択しました。
バイナリ配布のセットアップ手順は、
NGINX QUIC ウェブサイト.QUIC+HTTP/3 用の NGINX の設定
QUIC+HTTP/3 用に NGINX を設定するための非常に多くの珍しいディレクティブがありますが、それらをディレクティブと組み合わせるのは簡単です。既存の仮想サーバー (server{}
の HTTP/1.1 および HTTP/2 の場合) 構成ブロック。 サーバー{} (および子 家{}
) ブロック:
聞く
443 http3 reuseport;
珍しい追加 listen ディレクティブ)http3 パラメーターは、NGINX が HTTP/1.1 と同じポートで HTTP/3 接続をリッスンするための説明を提供します。そしてHTTP/2、ここ443.
The reuseport 正しい操作にはパラメーターが必要です複数の NGINX 従業員プロセスがある場合。 カーネルが着信 HTTP/3 接続をそれらの間で分散できるようにします
QUIC で要求されているように、許可されたプロトコルのレコードに TLS 1.3 で構成されています. (このディレクティブはおそらく既に構成に存在しますが、必要に応じて追加してください。)
ブラウザの象のような変動を刺激するには、最も見かけ上、古い TLS バリエーションで構成する必要があります。賢く。 TLS 1.3 のブラウザー インスパイアについては、 を参照してください。 TLS1.3は使えますか?
add_header Alt-Svc 'h3=":$server_port"; ma=86400'; これで構成されていますNGINX に応答ヘッダーを追加して、QUIC を強化する機能がすぐに利用できることと、どのポートを接着するかをブラウザーに伝えるためのディレクティブ。
慣例により、ポート (ここでは$server_port variable) は、HTTP/1.1 および HTTP/ 2.
ma
の値 は、消費者が安全に NGINX が UDP 経由で HTTP/3 Web サイトの訪問者を受け入れることを選択できる秒数の選択です。 その時点の後、消費者は TCP に戻りたいと考えています。 ここで指定する値は 24 時間です
server { # 互換性を高めるため、 # QUIC と TCP に同じポート番号を使用することをお勧めします listen 443 http3 reuseport; # QUIC listen 443 ssl; # TCP ssl_certificate certs/example.com.crt; ssl_certificate_key certs/example.com.key; ssl_protocols TLSv1.3; home / { # 設定したポートで QUIC がすぐに利用できることをアドバタイズします add_header Alt-Svc 'h3=":$server_port"; ma=86400'; #proxy_pass; #根 / ; } }
HTTP/3 に関連する不要で珍しいディレクティブがかなりたくさんあります。および変数 (現在はスニペットには表示されていません)、以下を含みます:
$http3 – (変数) h3 にアタッチ 照会が HTTP/3 セッションを介してすべてのスキームを送信される場合 (別のケースでは空の文字列)
ssl_early_data – (ディレクティブ) に帰るときon は、NGINX に、送信された必要な問い合わせでアプリケーション情報を解決するように指示します。そのコンシューマーからの古い接続が発生した場合、異常な TLS 1.3 接続を介したコンシューマー。 それは
-
このマップは、QUIC+HTTP/3 を使用した 0‑RTT 接続の再開がパフォーマンスを向上させる方法を強調しています。これは、コンシューマーが QUIC 接続を再開するときに最初のメッセージで HTTP 照会を送信できることを説明するためです。 NGINX。 TLS を使用した TCP の場合、これとは対照的に、コンシューマーは NGINX との通常とは異なる TLS ハンドシェイクを行って、適切な接続を確立する必要があります。
記述: 0‑RTT 接続再開はセキュリティチャンスを生み出す可能性があるため、早期の情報 は、得る。 ちょっとしたプリントについては、 で TLS 1.3 についてシェアNGINX Plus R17のアサート
に関する情報については異常なディレクティブと変数の合計は、3 を参照してください。 構成 の共有) nginx-quic README.
前に述べたように、ビルド済みのバイナリをリリースする動機の 1 つは、NGINX が HTTP/3 Web サイトの Web サイト訪問者を正確に処理していることを簡単に確認できるようにすることです。 簡単な公開ラインの試行については、 おそらく開発するオプションがあるでしょう curl with HTTP/3 inspire または 使用ビルド済みコンテナ
。 賢明なことに、ほとんどのブラウザーのより新しいバリエーションが QUIC+HTTP/3 に影響を与えています。
QUIC 対応のホームがブラウザからの HTTP/3 接続要求を満たしているかどうかを調べるには、ブラウザの開発者ツールを使用して、返された HTTP ヘッダーを覗き見するオプションがあると思われます。 NGINXによる。 NGINX に Alt-Svc ヘッダーが話しましただいたい above
ディレクティブは、カスタム HTTP ヘッダーの値を $サーバープロトコル
変数。 HTTP/1.から変更されるため、ヘッダーの値を変更することもできます。 バツ HTTP/3.0
への QUIC 接続が確立される前 Q の場合 UICが壊れています。
サンプルはこちら home
カスタム HTTP ヘッダーが であるブロックX-プロトコル:
home / { # QUIC が容易であることを宣伝する構成されたポートで利用可能 add_header Alt-Svc ‘h3=”:$server_port”; ma=86400’; # QUIC+HTTP/3 add_header X-protocol $server_protocol always; を使用しているかどうかを通知します。 #proxy_pass
あるいは、Chromeを喜ばせるツールがあります 使用中のプロトコルを視覚的に示す HTTP Indicator 拡張機能。 (これは現在、ブラウザ拡張機能の推奨ではなく、拡張機能の考えられるセキュリティへの影響は、条件を考慮して許容できることを確認する必要があることを説明してください)。
行ってきますQUIC+HTTP/3 の解像度を上げて、今後数週間で NGINX 最適化の追加の例を提供するオプションがあります。 その間の期間内に、私たちの決定を解釈しようとする試みの結果を分けてください。 オプションを NGINXパターンの郵送記録と# の quic‑http3 チャネルNGINX Neighborhood Slack
。
次の重要なマイルストーンである nginx-quic リポジトリをメインラインの NGINX Commence Source 部門に移動します – にサブスクライブしますNGINXの発表郵送記録。 ウェビナーを請求する
さらに刺激を与える今後のウェビナーをサポートしてください、NGINX および QUIC+HTTP/3 を使用した Web Palms-On の上 2023 年 4 月 19 日水曜日:
– 10:00 AM SGT
Kubernetes Web ページの管理 websi F5 NGINX を使用した訪問者: カラフルな情報
F5 NGINX Ingress Controller と F5 NGINX Service Mesh を使用して Kubernetes Web サイトの訪問者を監視し、複雑な課題を解決する方法を教えてください。本番環境で Kubernetes が動作しています。