モジュール ngx_http_v3_module
| 既知の問題 設定例 ディレクティブ http3 http3_hq http3_max_concurrent_streams http3_stream_buffer_size quic_active_connection_id_limit quic_bpf quic_gso quic_host_key quic_retry 埋め込み変数 |
ngx_http_v3_moduleモジュール (1.25.0) は、HTTP/3 の実験的なサポートを提供します。
このモジュールはデフォルトではビルドされません。--with-http_v3_module 設定パラメータを使用して有効にする必要があります。
このモジュールのビルドと実行には、BoringSSL、LibreSSL、またはQuicTLSなどのQUICサポートを提供するSSLライブラリが推奨されます。そうでない場合、OpenSSLライブラリを使用すると、早期データをサポートしないOpenSSL互換レイヤーが使用されます。
既知の問題
このモジュールは実験的なものであり、自己責任でご使用ください。
設定例
http {
log_format quic '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent" "$http3"';
access_log logs/access.log quic;
server {
# for better compatibility it's recommended
# to use the same port for http/3 and https
listen 8443 quic reuseport;
listen 8443 ssl;
ssl_certificate certs/example.com.crt;
ssl_certificate_key certs/example.com.key;
location / {
# used to advertise the availability of HTTP/3
add_header Alt-Svc 'h3=":8443"; ma=86400';
}
}
}
TLS経由でHTTP/3接続を受け入れるには、TLSv1.3プロトコルサポートが必要です。これはOpenSSLバージョン1.1.1以降で使用可能です。
ディレクティブ
| 構文 |
http3 |
|---|---|
| デフォルト |
http3 on; |
| コンテキスト |
http、server |
HTTP/3プロトコルのネゴシエーションを有効にします。
| 構文 |
http3_hq |
|---|---|
| デフォルト |
http3_hq off; |
| コンテキスト |
http、server |
QUIC相互運用性テストで使用されるHTTP/0.9プロトコルのネゴシエーションを有効にします。
| 構文 |
http3_max_concurrent_streams |
|---|---|
| デフォルト |
http3_max_concurrent_streams 128; |
| コンテキスト |
http、server |
接続内の同時HTTP/3リクエストストリームの最大数を設定します。
| 構文 |
http3_stream_buffer_size |
|---|---|
| デフォルト |
http3_stream_buffer_size 64k; |
| コンテキスト |
http、server |
QUICストリームの読み書きに使用されるバッファのサイズを設定します。
| 構文 |
quic_active_connection_id_limit |
|---|---|
| デフォルト |
quic_active_connection_id_limit 2; |
| コンテキスト |
http、server |
QUICのactive_connection_id_limitトランスポートパラメータ値を設定します。これは、サーバーに保存できるクライアント接続IDの最大数です。
| 構文 |
quic_bpf |
|---|---|
| デフォルト |
quic_bpf off; |
| コンテキスト |
メイン |
eBPF を使用したQUICパケットのルーティングを有効にします。有効にすると、QUIC接続の移行をサポートできます。
このディレクティブは、Linux 5.7以降でのみサポートされています。
| 構文 |
quic_gso |
|---|---|
| デフォルト |
quic_gso off; |
| コンテキスト |
http、server |
セグメンテーションオフロードを使用して最適化されたバッチモードでの送信を有効にします。
最適化された送信は、UDP_SEGMENTを備えたLinuxでのみサポートされています。
| 構文 |
quic_host_key |
|---|---|
| デフォルト | — |
| コンテキスト |
http、server |
ステートレスリセットとアドレス検証トークンの暗号化に使用される秘密鍵を含むファイルを設定します。デフォルトでは、リロードごとにランダムなキーが生成されます。古いキーで生成されたトークンは受け入れられません。
| 構文 |
quic_retry |
|---|---|
| デフォルト |
quic_retry off; |
| コンテキスト |
http、server |
QUICアドレス検証機能を有効にします。これには、RetryパケットまたはNEW_TOKENフレームに新しいトークンを送信し、Initialパケットで受信したトークンを検証することが含まれます。
埋め込み変数
ngx_http_v3_moduleモジュールは、次の埋め込み変数をサポートしています。
$http3- ネゴシエートされたプロトコル識別子:HTTP/3接続の場合は「
h3」、hq接続の場合は「hq」、それ以外の場合は空文字列。