ウェブサイト検索

Ubuntu 上の Apache で HTTP2.0 を有効にする方法?


HTTP/2.0 は、以前の HTTP/1.1 に比べてパフォーマンスが大幅に向上した HTTP プロトコルの最新バージョンです。 Apache Web サーバーで HTTP/2.0 を有効にすると、Web サイトの速度と応答性が向上し、訪問者のユーザー エクスペリエンスが向上します。この記事では、Ubuntu 上の Apache で HTTP/2.0 を有効にする手順を説明します。

ステップ 1: Apache バージョンを確認する

HTTP/2.0 を有効にする前に、Apache のバージョンが HTTP/2.0 と互換性があることを確認することが重要です。 Apacheのバージョンを確認するには、ターミナルで次のコマンドを実行します-

apache2 -v

出力には、Apache のバージョンが表示されます。 Apache バージョンが 2.4.17 以降の場合は、HTTP/2.0 の有効化に進むことができます。

ステップ 2: SSL 証明書をインストールする

HTTP/2.0 には安全な SSL/TLS 接続が必要です。したがって、Web サーバーに SSL 証明書をインストールする必要があります。 SSL 証明書がインストールされていない場合は、この記事「Ubuntu に Let's Encrypt SSL をインストールする方法」の手順に従って、無料の Let's Encrypt SSL 証明書を取得できます。

ステップ 3: HTTP/2.0 を有効にする

ApacheサーバーでHTTP/2.0を有効にするには、次の手順に従ってください-

  • 必要なモジュールをインストールします-

sudo apt-get install libapache2-mod-http2
  • Apache構成ファイルを編集します-

sudo nano /etc/apache2/sites-available/your-site.conf
  • 次の行をVirtualHostブロックに追加します-

Protocols h2 http/1.1
  • ファイルを保存して閉じます。

Apacheを再起動する

sudo service apache2 restart

それでおしまい! Apache Web サーバーで HTTP/2.0 が正常に有効になりました。

ステップ 4: HTTP/2.0 をテストする

サーバーで HTTP/2.0 が有効になっていることを確認するには、https://tools.keycdn.com/http2-test にある HTTP/2.0 テスト ツールを使用できます。

Web サイトの URL を入力し、「HTTP/2.0 をテスト」ボタンをクリックします。テストの結果、サイトで HTTP/2.0 が使用されていることが判明した場合は、おめでとうございます。あなたのサイトはより速く、より安全になりました。

Apache Web サーバーで HTTP/2.0 を有効にする場合、すべてのブラウザがこのプロトコルをサポートしているわけではないことに注意してください。一部の古いブラウザは HTTP/2.0 をサポートしていない可能性があり、HTTP/1.1 の使用に戻ります。したがって、すべての訪問者が Web サイトにアクセスできるように、HTTP/1.1 も有効にすることをお勧めします。

HTTP/2.0とHTTP/1.1の両方を有効にするには、Apache構成ファイルのVirtualHostブロックを次のように変更する必要があります-

Protocols h2 http/1.1

Apache サーバーで HTTP/2.0 を有効にすると、Web サイトのセキュリティも強化されます。 HTTP/2.0 では、Web サイトに追加のセキュリティ層を提供する SSL/TLS 暗号化の使用が必要です。 Web サイトと訪問者のデータを保護するために、強力な SSL/TLS 構成を使用することをお勧めします。

Apache サーバーで HTTP/2.0 を有効にするだけでなく、Web サイトを HTTP/2.0 用に最適化することもできます。たとえば、複数のリソースを 1 つのファイルに結合したり、サーバー プッシュを使用してリソースを事前にロードしたり、画像やその他のメディア ファイルのサイズを最適化したりすることで、HTTP リクエストの数を減らすことができます。

Apache サーバーで HTTP/2.0 を有効にする場合のもう 1 つの重要な考慮事項は、サーバーの負荷です。 HTTP/2.0 は HTTP/1.1 よりも多くのリソースを必要とするため、HTTP/2.0 リクエストを処理するときにサーバーの負荷が高くなる可能性があります。したがって、サーバーのリソース使用状況を監視し、必要に応じて構成を調整することをお勧めします。

Apache の組み込み mod_status モジュールなどのツールを使用して、サーバーのリソース使用状況を監視できます。このモジュールは、リクエストの数、各リクエストのステータス、サーバーの CPU とメモリの使用状況など、サーバーのアクティビティに関するリアルタイムの情報を提供します。

mod_statusを有効にするには、Apache構成ファイルに次の行を追加する必要があります-

<Location /server-status>
   SetHandler server-status
   Require all granted
</Location>

mod_status を有効にすると、Web ブラウザで http://your-server-ip/server-status にアクセスして、サーバー ステータス ページにアクセスできます。このページには、アクティブな接続の数、1 秒あたりのリクエスト数、サーバーの CPU とメモリの使用状況など、サーバーの現在のアクティビティの概要が表示されます。

サーバーのリソース使用状況を監視し、必要に応じて構成を調整することで、サーバーが HTTP/2.0 リクエストを処理する際の負荷の増加に確実に対処できるようになります。

Apache サーバーで HTTP/2.0 を有効にするときに考慮すべきもう 1 つの側面は、仮想ホストの使用です。同じサーバー上で複数の Web サイトをホストしている場合は、仮想ホストごとに個別に HTTP/2.0 を有効にすることができます。

特定の仮想ホストに対してHTTP/2.0を有効にするには、次の行を仮想ホスト構成ファイルに追加する必要があります-

Protocols h2 http/1.1

たとえば、「example.com」と「example.net」という名前の2つの仮想ホストがある場合、次のように各仮想ホストでHTTP/2.0を有効にすることができます-

<VirtualHost *:443>
   ServerName example.com
   Protocols h2 http/1.1
   SSLCertificateFile /path/to/certificate.pem
   SSLCertificateKeyFile /path/to/private/key.pem
   ...
</VirtualHost>

<VirtualHost *:443>
   ServerName example.net
   Protocols h2 http/1.1
   SSLCertificateFile /path/to/certificate.pem
   SSLCertificateKeyFile /path/to/private/key.pem
   ...
</VirtualHost>

仮想ホストごとに個別に HTTP/2.0 を有効にすることで、Web サイトごとに高速で応答性の高いユーザー エクスペリエンスを提供できます。

最後に、最新のセキュリティ パッチとパフォーマンスの向上を確実に適用するには、Apache サーバーを最新の状態に保つことが重要です。次のコマンドを使用して、Apacheとそのモジュールを更新できます-

sudo apt-get update
sudo apt-get upgrade

Apache サーバーを定期的に更新することで、Web サイトの安全性を確保し、最高のパフォーマンスを維持できます。

Apache サーバーで HTTP/2.0 を有効にするときに考慮すべきもう 1 つの重要な側面は、キャッシュの使用です。 HTTP/2.0 にはサーバー プッシュのサポートが組み込まれており、サーバーはリクエストを待たずにリソースをクライアントにプッシュできます。ただし、サーバー プッシュは、すべてのリソース、特にページの読み込みごとに必要ではない大きなファイルにとって最適なソリューションであるとは限りません。

HTTP/2.0 で Web サイトのパフォーマンスを最適化するには、キャッシュを使用してリクエストの数を減らし、Web サイトの速度を向上させることができます。 Apache は、mod_cache や mod_cache_disk などのさまざまなキャッシュ メカニズムをサポートしています。

Mod_cache は、頻繁にアクセスされるコンテンツをメモリに保存するメモリ内キャッシュ メカニズムです。これにより、サーバーの負荷が大幅に軽減され、頻繁にアクセスされるリソースの応答時間が短縮されます。

一方、Mod_cache_disk は、頻繁にアクセスされるコンテンツをディスクに保存するため、頻繁にアクセスされないリソースの応答時間を向上させることができます。これにより、サーバーへのリクエストの数が減り、サーバーの負荷も軽減されます。

Apacheサーバーでキャッシュを有効にするには、仮想ホスト構成ファイルに次の行を追加する必要があります-

<IfModule mod_cache.c>
   CacheQuickHandler on
   CacheLock on
   CacheLockPath /tmp/mod_cache-lock
   CacheLockMaxAge 5
   CacheIgnoreCacheControl On
   CacheIgnoreNoLastMod On
   CacheIgnoreHeaders Set-Cookie
   CacheStorePrivate On
   CacheStoreNoStore On
</IfModule>

これらの行はキャッシュを有効にし、キャッシュ ロック パスと最大存続期間を指定します。これらの設定は、Web サイトのニーズに合わせてカスタマイズできます。

キャッシュを有効にするだけでなく、リソースを圧縮してサイズを最適化することもできます。 Apache は gzip 圧縮をサポートしているため、リソースのサイズが大幅に削減され、Web サイトの速度が向上します。

Apacheサーバーでgzip圧縮を有効にするには、仮想ホスト構成ファイルに次の行を追加する必要があります-

<IfModule mod_deflate.c>
   AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript application/x-javascript
   DeflateCompressionLevel 9
   DeflateWindowSize 15
   DeflateBufferSize 8096
</IfModule>

これらの行は、指定されたコンテンツ タイプの gzip 圧縮を有効にし、圧縮レベル、ウィンドウ サイズ、およびバッファ サイズを指定します。これらの設定は、Web サイトのニーズに合わせてカスタマイズできます。

結論

Apache Web サーバーで HTTP/2.0 を有効にすると、Web サイトの速度とパフォーマンスが大幅に向上します。この記事で説明されている手順に従うことで、Ubuntu サーバーで HTTP/2.0 を簡単に有効にし、この新しいプロトコルの利点を享受できます。

関連記事: