HTTP/2 は、2015 年にリリースされた HTTP プロトコルの 2 番目のメジャー バージョンです。
Web サイトの約 46.5 % が HTTP/2 をサポートしています。
次のような多くの機能があります。
- HTTPヘッダーの圧縮
- プッシュテクノロジー
- 単一の TCP 接続を介してページ要素を並行してロードします
- バイナリプロトコル
- 待ち時間の短縮
AKAMAI によるデモでは、 HTTP/2 が HTTP/1.1 よりも約 2 倍高速で あることが示されています。
LiteSpeed が HTTP/2 をサポートした最初の Web サーバーの 1 つであることをご存知ですか?
Cloudflare、Incapsula、MaxCDN などの CDN を使用する場合は、CDN ネットワーク エッジから実行できるため、Web サーバーで HTTP/2 を有効にする必要がない場合があります。
ただし、Apache、Nginx、IIS などの Web サーバーに HTTP/2 を実装する必要がある場合は、その方法を読んでください。
注: すべての主要なブラウザ (Chrome、Edge、Firefox、Safari、Opera) は、HTTP2 の実装に TLS 1.2 以降を使用する必要があります。
ただし、実験を行っている場合でも心配する必要はありません。 TLS 証明書は無料で取得できます。

Apache HTTP で HTTP/2 を実装する
HTTP/2 は、 mod_http2 モジュールを使用して、Apache HTTP 2.4.17 以降のバージョンにデプロイできます。したがって、2.2 以前のバージョンを使用している場合は、まず互換性のあるバージョンにアップグレードする必要があります。
mod_http2 、 mod_ssl モジュールを使用して Apache HTTP をコンパイルしましょう。
- 最新バージョンをダウンロードします (Linux では 2.4.25 を実行します)
- .gz ファイルをダウンロードした場合は、ダウンロードしたファイルを解凍します。
gunzip -c httpd-2.4.25.tar.gz | tar xvf -
- 新しいフォルダーが作成されるのが表示されます。その中に入ってください
- configure コマンドを使用してソースから Apache をビルドする
注 : これを新しいサーバーで試している場合、依存関係をインストールする際にエラーが発生する可能性があります。このガイドはその解決に役立つはずです。
./configure --enable-ssl --enable-so --enable-http2
- 上記のコマンドでエラーがないことを確認したら、次の make コマンドを実行します。
make
make install
これで、Apache HTTP が HTTP/2 モジュールとともにインストールされました。必要な設定を行います。
- httpd.conf ファイルのバックアップを作成します (デフォルトの場所 /etc/httpd/conf/httpd.conf)。
- vi で httpd.conf ファイルを開き、以下が存在することを確認します。そうでない場合は追加します。
LoadModule http2_module modules/mod_http2.so
- 次に、以下のように Protocols ディレクティブを追加する必要があります。
Protocols h2 h2c http/1.1
個々の仮想ホストに対して HTTP/2 を有効にしている場合は、それぞれの VIrtualHost の下に プロトコルを 追加する必要があります。
注: 上記の Protocols ディレクティブには 3 つのパラメータがあります
- h2 – SSL/TLS 経由で HTTP/2 プロトコルをサポートするように Apache に指示します
- h2c – Apache に TCP 経由で HTTP/2 をサポートするように指示します。
- http/1.1 – クライアントが HTTP/2 を受け入れない場合は、HTTP/1.1 経由でリクエストを処理します。
Apache HTTP サーバーを再起動して、構成を 再ロードします 。
これで、Apache HTTP インスタンスが HTTP/2 プロトコルをサポートできるように なりました 。
Nginx に HTTP/2 を実装する
Nginx 1.9.5 以降のバージョンは HTTP/2 をサポートしているため、まず互換性のあるバージョンがインストールされていることを確認する必要があります。
Nginx で HTTP/2 を有効にするには、listen ディレクティブに http2 パラメータを追加するだけです。
- いつものように、nginx.conf ファイル (デフォルトの場所 /etc/nginx/nginx.conf) のバックアップを作成します。
- vi を使用して変更し、 listen ディレクティブの下に http2 を追加します
server {
listen 443 http2 ssl chandan.io;
…....
}
上で述べたように、HTTP/2 は HTTPS 上でのみ サポートされるため、SSL 構成を持つサーバー ブロックの下に追加する必要があります。
SSL 設定が他の nginx.conf ファイルにある場合は、そこで更新する必要があります。
完了したら、Nginx を再起動して構成を有効にします。
Web サイトが HTTP/2 をサポートしているかどうかを確認する
Web サイトが HTTP/2 をサポートしているかどうかを確認するには、複数の方法があります。
手動 – IE/Chrome/Firefox を開いて F12 を押し、[ネットワーク] タブに移動すると、プロトコルが HTTP/2 として表示されるはずです。
オンライン – HTTP/2 テスト ツールを使用できます。
それが今日のすべてです。上記の内容が、Web ページを高速に読み込むために Apache および Nginx Web サーバーで HTTP/2 プロトコルを有効にするのに役立つことを願っています。