テクノロジー アパッチHTTP 非公開: Apache と Nginx で HTTP/2 を有効にする方法?

Apache と Nginx で HTTP/2 を有効にする方法?

HTTP/2 は、2015 年にリリースされた HTTP プロトコルの 2 番目のメジャー バージョンです。

http-プロトコル履歴
http-プロトコル履歴
http-プロトコル履歴

Web サイトの約 46.5 % が HTTP/2 をサポートしています。

HTTP2統計
HTTP2統計
HTTP2統計

次のような多くの機能があります。

  • HTTPヘッダーの圧縮
  • プッシュテクノロジー
  • 単一の TCP 接続を介してページ要素を並行してロードします
  • バイナリプロトコル
  • 待ち時間の短縮

AKAMAI によるデモでは、 HTTP/2 が HTTP/1.1 よりも約 2 倍高速で あることが示されています。

http2-デモ
http2-デモ
http2-デモ

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 と Nginx で HTTP/2 を有効にする方法?
Apache と Nginx で HTTP/2 を有効にする方法?

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 として表示されるはずです。

クロム-http2-検証
クロム-http2-検証
クロム-http2-検証

オンライン – HTTP/2 テスト ツールを使用できます。

それが今日のすべてです。上記の内容が、Web ページを高速に読み込むために Apache および Nginx Web サーバーで HTTP/2 プロトコルを有効にするのに役立つことを願っています。

「 Apache と Nginx で HTTP/2 を有効にする方法?」についてわかりやすく解説!絶対に観るべきベスト2動画

Setup HTTP/2 with Nginx
WEBサーバーの仕組み入門|ApacheやNginxなどWEBサーバーの基本を初心者向けに解説

HTTP/2 は、2015 年にリリースされた HTTP プロトコルの 2 番目のメジャー バージョンです。

http-プロトコル履歴
http-プロトコル履歴
http-プロトコル履歴

Web サイトの約 46.5 % が HTTP/2 をサポートしています。

HTTP2統計
HTTP2統計
HTTP2統計

次のような多くの機能があります。

  • HTTPヘッダーの圧縮
  • プッシュテクノロジー
  • 単一の TCP 接続を介してページ要素を並行してロードします
  • バイナリプロトコル
  • 待ち時間の短縮

AKAMAI によるデモでは、 HTTP/2 が HTTP/1.1 よりも約 2 倍高速で あることが示されています。

http2-デモ
http2-デモ
http2-デモ

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 と Nginx で HTTP/2 を有効にする方法?
Apache と Nginx で HTTP/2 を有効にする方法?

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 として表示されるはずです。

クロム-http2-検証
クロム-http2-検証
クロム-http2-検証

オンライン – HTTP/2 テスト ツールを使用できます。

それが今日のすべてです。上記の内容が、Web ページを高速に読み込むために Apache および Nginx Web サーバーで HTTP/2 プロトコルを有効にするのに役立つことを願っています。

「 Apache と Nginx で HTTP/2 を有効にする方法?」についてわかりやすく解説!絶対に観るべきベスト2動画

Setup HTTP/2 with Nginx
WEBサーバーの仕組み入門|ApacheやNginxなどWEBサーバーの基本を初心者向けに解説