GNU/Linux >> Linux の 問題 >  >> Ubuntu

UbuntuのApacheでHTTP/2を有効にする方法

ワールドワイドウェブの開始以来 ( www )、 HTTP プロトコルは、インターネットを介して安全で高速なデジタルコンテンツを配信するために、長年にわたって進化してきました。

最も広く使用されているバージョンはHTTP1.1 です また、以前のバージョンの欠点に対処するための機能拡張とパフォーマンスの最適化が含まれていますが、 HTTP / 2によって対処された他のいくつかの顕著な機能には達していません。 。

HTTP / 1.1の制限は何ですか?

HTTP / 1.1 プロトコルには次の欠点があり、特にトラフィックの多いWebサーバーを実行している場合は理想的ではありません。

  1. HTTPヘッダーが長いため、ウェブページの読み込みが遅れます。
  2. HTTP / 1.1は、TCP接続ごとにファイルごとに1つのリクエストのみを送信できます。
  3. HTTP / 1.1がTCP接続ごとに1つのリクエストを処理することを考えると、ブラウザはリクエストを同時に処理するために大量の並列TCP接続を送信することを余儀なくされます。これにより、TCPの輻輳が発生し、最終的には帯域幅の浪費とネットワークの劣化が発生します。

上記の問題は、多くの場合、パフォーマンスの低下と帯域幅使用の高いオーバーヘッドコストにつながりました。 HTTP / 2 これらの問題に対処するために登場し、HTTPプロトコルの未来になりました。

HTTP/2を使用する利点

次の利点があります。

  1. クライアントの要求を最小限に抑え、それによって帯域幅の消費を削減するヘッダー圧縮。結果として得られる効果は、ページの読み込み速度が速いことです。
  2. 1つのTCP接続を介した複数の要求の多重化。サーバーとクライアントの両方がHTTPリクエストを複数のフレームに分割し、もう一方の端でそれらを再グループ化できます。
  3. より高速なWebパフォーマンスにより、SEOランキングが向上します。
  4. ほとんどの主流のブラウザがHTTPSを介してHTTP/2をロードするため、セキュリティが向上します。
  5. HTTP / 2は、ヘッダー圧縮機能のおかげで、よりモバイルフレンドリーであると考えられています。

そうは言っても、 HTTP / 2を有効にします Apache Ubuntu 20.04 LTS およびUbuntu18.04 LTS

前提条件:

開始する前に、 HTTPSが有効になっていることを確認してください HTTP / 2を有効にする前にApacheWebサーバーで 。これは、すべての主流のWebブラウザが HTTP / 2をサポートしているためです。 HTTPS Ubuntu 20.04のインスタンスを指すドメイン名があります Let’sEncrypt証明書を使用して保護されたApacheサーバーを実行しています。

また、 Apache 2.4.26を使用することをお勧めします HTTP / 2への移行を予定している本番サーバーの以降のバージョン 。

Apacheのバージョンを確認するには 実行している場合は、次のコマンドを実行します:

$ apache2 -v

UbuntuでApacheのバージョンを確認する

出力から、最新バージョンである Apache 2.4.41を使用していることがわかります。 この記事を書き留める時点で。

Apache仮想ホストでHTTP/2を有効にする

開始するには、まずウェブサーバーが HTTP / 1.1を実行していることを確認します 。 Google Chrome の開発者ツールセクションを開くと、ブラウザでこれを行うことができます Ctrl +SHIFT + Iを使用する 組み合わせ。 「ネットワーク」をクリックします 」タブをクリックして、「プロトコル」を見つけます ’列。

HTTPプロトコルバージョンの確認

次に、 HTTP / 2を有効にします Ubuntuのモジュール 次のコマンドを実行します。

$ sudo a2enmod http2

UbuntuでHTTP/2を有効にする

次に、 SSLを見つけて編集します Let's Encrypt を使用してHTTPSを有効にしている場合は、仮想ホストファイル 、 le-ssl.confを使用して新しいファイルが作成されます 接尾辞。

$ sudo vim /etc/apache2/sites-enabled/your-domain-name-le-ssl.conf

<VirtualHost *:443>の後に以下のディレクティブを挿入します タグ。

Protocols h2 http/1.1

ApacheでHTTP/2を有効にする

変更を保存するには、ApacheWebサーバーを再起動します。

$ sudo systemctl restart apache2

HTTP / 2かどうかを確認するには が有効になっている場合は、次のcurlコマンドをshowとして使用してHTTPヘッダーをフェッチします。

$ curl -I --http2 -s https://domain.com/ | grep HTTP

ApacheでのHTTP/2サポートを確認する

表示された出力が得られるはずです。

HTTP/2 200

ブラウザで、サイトをリロードします。次に、開発者ツールに戻り、h2で示されるHTTP/2を確認します。 「プロトコル」のラベル ’列。

HTTP/2プロトコルバージョンの確認

Apacheでmod_phpモジュールを使用する場合

Apacheを実行している場合 mod_phpと一緒に モジュールの場合、 PHP-FPMに切り替える必要があります 。これは、 mod_phpが モジュールはプリフォークMPMを使用します HTTP / 2でサポートされていないモジュール 。プリフォークMPMをアンインストールする必要があります mpm_eventに切り替えます HTTP / 2でサポートされるモジュール 。

PHP 7.4 mod_phpを使用している場合 たとえば、モジュールは次のように無効にします。

$ sudo a2dismod php7.4 

mod_phpモジュールを無効にする

その後、プリフォーク MPMを無効にします モジュール。

$ sudo a2dismod mpm_prefork

ApacheでPreforkMPMを無効にする

モジュールを無効にした後、次に、イベントMPMを有効にします 、 Fast_CGI 、および setenvif 示されているモジュール。

$ sudo a2enmod mpm_event proxy_fcgi setenvif

ApacheでイベントMPMを有効にする

UbuntuにPHP-FPMをインストールする

次に、 PHP-FPMをインストールして起動します 示されているように。

$ sudo apt install php7.4-fpm 
$ sudo systemctl start php7.4-fpm

次に、 PHP-FPMを有効にします 起動時に開始します。

$ sudo systemctl enable php7.4-fpm

次に、 PHP-FPMを有効にします ApacheのPHPハンドラーとして、変更を有効にするためにApacheWebサーバーを再起動します。

$ sudo a2enconf php7.4-fpm

ApacheUbuntuでHTTP/2サポートを有効にする

次に、前と同じようにHTTP/2モジュールを有効にします。

$ sudo a2enmod http2

Apacheを再起動して、すべての変更を同期します。

$ sudo systemctl restart apache2

最後に、サーバーが HTTP / 2を使用しているかどうかをテストできます 図のようにcurlコマンドを使用するプロトコル。

$ curl -I --http2 -s https://domain.com/ | grep HTTP

ApacheでHTTP/2プロトコルを確認する

Google Chromeのデベロッパーツールを使用することもできます 以前に文書化されているように確認するブラウザ。このガイドの最後までお伝えします。この情報が貴重であり、 HTTP / 2を快適に有効にできることを願っています。 Apache 簡単に。

共有は思いやりがあります…
Facebookで共有するTwitterで共有するLinkedinで共有するRedditで共有する
Ubuntu
  1. Ubuntu 20.04 – Hweを有効にする方法は?

  2. UbuntuとCentOSのNginxでHTTP/2を有効にする方法

  3. Ubuntu16.04でHTTP/2を使用してApacheを設定する方法

  1. Ubuntu18.04にApacheをインストールする方法

  2. Ubuntu18.04でSSHを有効にする方法

  3. Ubuntuリモートデスクトップを有効にする方法

  1. Ubuntu20.04にApacheをインストールする方法

  2. Ubuntu17.10で常夜灯を有効にする方法

  3. Ubuntu20.04でSSHを有効にする方法