web-dev-qa-db-ja.com

ApacheのHTTP2を使用する必要がありますか?

Apache 2.4.16(おそらく2.4.17にアップグレードする必要がある)でHTTP2を使用したかったのですが、公式のApacheページでこのコメントを偶然見つけました。

警告

このモジュールは実験的です。その動作、ディレクティブ、およびデフォルトは、他の標準モジュールと比較して、リリースごとにさらに変更される可能性があります。更新の可能性については、「変更」ファイルを参照することをお勧めします。

その一方で、他の多くはそれを有効にする方法についてのチュートリアルを作成しています。それを使用しても安全ですか、それとも待機する必要がありますか?

また、HTTP2をリバースプロキシと組み合わせて使用​​できますか?

6
David Garus

更新:Apache 2.4.26以降、mod_http2は実験的なものとは見なされなくなりました。これを反映するために、以下の回答が更新されました。

また、mod_http2_proxyはまだ実験的と見なされていることに注意してください。

試験運用タグは、機能が最初に追加されたときに追加され、本文で説明されているように、実装、オプション、およびAPIは変更される可能性があることを警告しています。したがって、試験運用機能を使用する場合は、以降の更新をインストールするときに 変更ファイル を注意深く読んで、必要な変更があることを確認してください。

試験運用タグは、実装が不安定であることをしないことを意味します。不安定なオプションは通常、メインのApacheソースツリーに直接追加されず、個別のインストール可能なモジュールとして処理されます。

つまり、HTTP/2を使用するには、少なくとも2.4.17にアップグレードする必要がありますが、このモジュールはかなり変更されているため、実際には最新(執筆時点では2.4.26)にアップグレードする必要があります。発売以来のパフォーマンスの向上、さらにはいくつかのCVE( 2016-15462016-874 および 2017-7659 を含む)にも対応しています。これは特にバグがある、または危険だと言っているわけではありません。Apache(および他のほとんどすべてのソフトウェア)には他にも多くのCVEがありますが、それは本当に最新バージョンを実行する必要があることを意味します。

また、ChromeおよびFirefoxで動作するようにOpenSSL 1.0.2に対してコンパイルする必要があります(これらは新しいALPNプロトコルのみを許可し、古いNPNプロトコルはHTTP/2接続をネゴシエートできないため)、ほとんどのパッケージマネージャーにはまだこれが含まれていないため、これは追加の苦痛になる可能性があります。2.4.26以降、ApacheはOpenSSL 1.1もサポートしています。

新しいバージョンを実行し、パッケージマネージャー(yumやAPTなど)からではなく、ソースからコンパイルすると、追加の労力と規律が必要になります(インストールやパッチの適用が容易ではないため)。これは、質問の範囲を超えていますが、軽く入るもの。これは、Linuxを使用していることを前提としています。 Windowsを使用している場合は、おそらく既に個別にダウンロードしてインストールしています。

最後にあなたの質問の本当の核心に。 Apache 2.4.26リリースでは、メインのmod_http2モジュールの実験的な警告は削除されましたが、新しいmod_proxy_http2モジュールの場合は引き続き有効です。私は個人的に私のブログサイトでHTTP/2を2.4.17から実行しており、実際に問題が発生したことはありません。私には十分に安定しているようです。それでも、私は大量のトラフィックを得ることはありません、そしてそれがダウンしてもそれは私にとって大したことではありません。実際の本番サイトで実行できますか?おそらく、その実験的な警告が削除されるまでは(2.4.26)。繰り返しになりますが、起こる唯一の方法は、人々がそれを試してみる場合です。 HTTP/2は、問題が発生した場合にオフにするのも簡単です。基本的にそれは完全にあなたのリスク選好度に依存します。 GitHub( https://github.com/icing/mod_h2/issues )で既知の問題のリストを読んで(そしてサブスクライブして)ください。モジュールの作者は非常に反応がよく、役に立ちます。

リバースプロキシ機能について何を求めているのかわからない。 2.4.21以降、ApacheはHTTP/2バックエンドを処理するmod_proxy_http2を導入しましたが、使用およびテストの回数はさらに少なくなっています(まだ実験段階としてマークされています)。 HTTP/2の主な利点は、低レイテンシのフロントエンドからバックエンドへの接続ではなく、高レイテンシネットワーク(つまり、クライアントからフロントエンド)にあることです。したがって、今のところ、ApacheでHTTP/2を使用していますが、HTTP/1へのバックエンドインフラストラクチャへのリバースプロキシ接続を維持します。はい、これは完全に問題なく機能しますが、それがあなたが求めていたものであれば、 この質問はHTTP/2を最後まで話すことには利点があると主張しています です。

8
Barry Pollard