http2-misdirect プラグインは、ゲートウェイで HTTP/2 が有効になっている場合に、ブラウザーの接続再利用が原因で HTTP ステータスコード 404 が返されるなどの問題を解決するために使用されます。
プラグインの種類
転送プロトコル関連プラグイン。
実装の原則
HTTP/2 プロトコルでは、ドメイン名が同じ IP アドレスに解決され、同じ証明書が使用されている場合、異なるドメイン名からの 2 つの要求が同じ接続を再利用できます。一部の特殊なシナリオでは、同じ接続を再利用する要求は、有効な仮想ホストに送信されて処理されません。その結果、HTTP ステータスコード 404 が返されます。 http2-misdirect プラグインを有効にすると、プラグインは要求内のサーバー名表示 (SNI) が現在の仮想ホストと一致しないことを検出した場合、HTTP ステータスコード 421 を返してブラウザーに新しい接続を強制的に確立させます。プラグインは、要求内のドメイン名に基づいて一致する SNI を生成します。これにより、ゲートウェイは要求を正しくルーティングできます。
ブラウザーの互換性
15.1 より前の Safari バージョンは、HTTP ステータスコード 421 をサポートしていません。クライアントがこれらの Safari バージョンのいずれかを使用している場合は、指定されたドメイン名に対して HTTP/2 アプリケーション層プロトコルネゴシエーション (ALPN) を無効にすることをお勧めします。