HTTP/2で動作することを目的としたサイトのNginxサーバーブロックで、私はこれを見ました:
gzip_http_version 1.1;
これにより、HTTP/2で送信された一部のパケットと競合する可能性がありますか?
私はこのGzipディレクティブを理解していないため、HTTP/2パケットが影響を受ける可能性があるとは言えません。
gzip_http_version
は、request(クライアントから)に必要なHTTPプロトコルのminimumバージョンですサーバーからの応答を圧縮します。デフォルトは1.1
です。
そのため、プロトコルバージョン1.0を使用してリクエストを送信しているユーザーエージェントは、サーバーから応答を圧縮しません。応答はそのままになります。値を1.1に設定すると、非常に小さな群衆(おそらく、現在サポートされていないWin XPを使用している人)がいたとしても、おそらく傷つくことに注意してください。
質問に答えるには:
これにより、HTTP/2で送信された一部のパケットと競合する可能性がありますか?
いいえ、nginx
は$server_protocol
変数(HTTP/1.0
、HTTP/1.1
、HTTP/2.0
のいずれか)の値に基づいてリクエストを異なる方法で処理するためです。
補足説明として、Transfer-Encoding
ヘッダーはHTTP/1.0
ではサポートされていないため、gzip_http_version
を1.0
に設定しないでください。そうしないと、Content-Length
が使用されたときにgzip_http_version
ヘッダーが設定されないため、キープアライブが取得されません。 HTTP/1.1は、Transfer-Encoding: chunked
ヘッダーを使用してこれに対処します。