ngx_http_v2_module モジュール
ngx_http_v2_module
モジュール (1.9.5) はHTTP/2 のサポートを提供し、 ngx_http_spdy_moduleモジュールに取って代わります。
このモジュールはデフォルトではビルドされず、--with-http_v2_module
configureパラメータを有効にする必要があります。
知られていること
バージョン1.9.14より前では、クライアントのリクエストボディのバッファリングは proxy_request_buffering, fastcgi_request_buffering, uwsgi_request_buffering およびscgi_request_buffering ディレクティブの値に関係なく、無効にすることができませんでした。
設定例
server { listen 443 ssl http2; ssl_certificate server.crt; ssl_certificate_key server.key; }
TLS上のHTTP/2接続の受信には、OpenSSLバージョン1.0.2からのみ利用可能な"Application-Layer Protocol Negotiation" (ALPN) TLS 拡張サポートが必要です。この目的に(OpenSSL バージョン1.0.1から利用可能な)"Next Protocol Negotiation" (NPN) TLS 拡張の使用は動作保証されません。
ssl_prefer_server_ciphers ディレクティブが値"on
"に設定される場合、ciphers がRFC 7540, Appendix Aブラックリストに準拠し、クライアントによってサポートされなければならないことにも注意してください。
ディレクティブ
構文: |
http2_chunk_size |
---|---|
デフォルト: |
http2_chunk_size 8k; |
コンテキスト: |
http , server , location |
応答ボディが sliceされるチャンクの最大サイズを設定します。あまりに小さい値だと高負荷になります。あまりに大きい値だとHOL blockingにより優先順位が損なわれます。
構文: |
http2_body_preread_size |
---|---|
デフォルト: |
http2_body_preread_size 64k; |
コンテキスト: |
http , server |
このディレクティブはバージョン 1.11.0 から導入されました。
リクエストが処理される前に各リクエストのボディを保存することができるバッファのsize
を設定します。
構文: |
http2_idle_timeout |
---|---|
デフォルト: |
http2_idle_timeout 3m; |
コンテキスト: |
http , server |
接続が閉じられた後で動作しなくなるタイムアウトを設定します。
構文: |
http2_max_concurrent_streams |
---|---|
デフォルト: |
http2_max_concurrent_streams 128; |
コンテキスト: |
http , server |
接続内で同時に起こるHTTP/2ストリームの最大数を設定します。
構文: |
http2_max_field_size |
---|---|
デフォルト: |
http2_max_field_size 4k; |
コンテキスト: |
http , server |
HPACK-圧縮リクエストヘッダーフィールドの最大サイズを制限します。制限は名前と値の両方に一様に適用されます。ハフマン符号化が適用された場合、解凍された名前と値の文字列の実際のサイズはもっと大きいかも知れません。ほとんどのリクエストにおいて、デフォルトの制限で十分に違いないでしょう。
構文: |
http2_max_header_size |
---|---|
デフォルト: |
http2_max_header_size 16k; |
コンテキスト: |
http , server |
HPACK 解凍の後の全体のリクエストヘッダリストの最大サイズを制限します。ほとんどのリクエストにおいて、デフォルトの制限で十分に違いないでしょう。
構文: |
http2_max_requests |
---|---|
デフォルト: |
http2_max_requests 1000; |
コンテキスト: |
http , server , location |
このディレクティブはバージョン 1.11.6 から導入されました。
1つのHTTP/2接続で提供することができる最大のリクエスト数を設定します。この後は接続が閉じられ、クライアントは新しい接続を使う必要があります。
構文: |
http2_recv_buffer_size |
---|---|
デフォルト: |
http2_recv_buffer_size 256k; |
コンテキスト: |
http |
worker あたりの入力バッファのサイズを設定します。
構文: |
http2_recv_timeout |
---|---|
デフォルト: |
http2_recv_timeout 30s; |
コンテキスト: |
http , server |
接続が閉じた後でクライアントからデータがもう来ないと思われるタイムアウトを設定します。
埋め込み変数
ngx_http_v2_module
は以下の埋め込み変数をサポートします。
$http2
-
交渉プロトコル識別子: HTTP/2 over TLS については "
h2
"、平文TCP上のHTTP/2については "h2c
"、そうでなければ空文字列。