web-dev-qa-db-ja.com

centos7でhttp2を有効にする方法

私はCENTOS7サーバーを持っています:

サーバーバージョン:Apache/2.4.6(CentOS)

。これらのApacheでHTTP/2を有効化/追加するにはどうすればよいですか? Nghttpを介してクライアントからhttp2要求を送信しようとしていますが、Http2をサポートしないサーバーの結果として、応答(recv RST_STREAMフレーム)でエラーが発生します。

Apacheでmodule_http2を有効にする必要があることがわかりましたが、これを実行できるかどうかはわかりませんでした。

前もって感謝します。

11
Adam

HTTP/2サポートはApache 2.4.18でのみ追加され、標準のCentOS/Red Hatリポジトリでは利用できません。 mod_http2が積極的に取り組んでいたので(そして執筆時点でも)、最新バージョン(執筆時点では2.4.33-さらにその上にmod_http2パッチがあります)を使用する必要があります。

さらに、HTTP/2にはOpenSSL 1.0.2以降が必要です。つまり、独自のバージョンのOpenSSLと独自のバージョンのApacheをインストールする場合を除き、CentOS/RHEL 7.4以降が必要です。それより先に進み、OpenSSL 1.1.0に移動する場合は、Apache 2.4.26以降が必要です。

したがって、ソースから新しいApache(および場合によってはOpenSSL)をダウンロードしてコンパイルするか、これらの新しいバージョンで別のリポジトリを見つける必要があります。これにはいくつかのリスクが伴います。主に、レポバージョンが提供する簡単なセキュリティパッチを失うことです。 CentOS Apache 2.4.6には、実際にはそれ以降のバージョンの最新のセキュリティパッチがすべて含まれています(定期的に「yum update」を実行して更新することを前提としています)-HTTP/2のような機能の変更はありません(したがって、バージョン番号が2.4.6のままになる理由) 。

ソースからのインストールに興味がある場合は、ここでそれを行う方法に関するステップごとのブログ投稿があります: https://www.tunetheweb.com/performance/http2/

9
Barry Pollard

httpd24 Software Collection を使用して、ベースリポジトリに含まれているよりも新しいバージョンのhttpdをインストールできます。 SCLを有効にしたら、次のパッケージが必要です。

  • httpd24
  • httpd24-nghttp2
  • httpd24-mod_ssl *

* SSLも設定するのが最適です。たとえば、ChromeはTLSを使用したHTTP2のみを実行するためです。

0
RedShift