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

UbuntuおよびDebianのApacheWebサーバーでHTTP/2を有効にする方法

ハイパーテキスト転送プロトコルバージョン2( HTTP / 2 )はHTTPプロトコルの最新バージョンであり、2015年にRFC7540でIETF標準として公開されています。プロトコルの焦点はパフォーマンスにあります。具体的には、エンドユーザーが認識した遅延、ネットワーク、およびサーバーリソースの使用量です。主要な目標の1つは、ブラウザーからWebサイトへの単一の接続を使用できるようにすることです。プロトコルには下位互換性があるため、HTTPメソッド、ステータスコード、およびセマンティクスは、以前のバージョンのプロトコルと同じです。 Apacheはバージョン2.4.17以降HTTP/2をサポートしています。このチュートリアルでは、TLS構成がすでに機能しており、選択したLinuxディストリビューションに必要なApacheバージョンがインストールされており、Let's Encryptの使用方法を知っている、または自己署名証明書を発行します。

このチュートリアルは Debian10でテストされています 、Debian 9、 Ubuntu 20.04 LTS、 およびUbuntu18.04LTS。

前提条件

ApacheでHTTP/2を有効にするには、次の要件を満たす必要があります。

  • まず、サーバーでHTTPSを有効にする必要があります。すべての主要なブラウザは、HTTPS上でのみHTTP/2の使用を許可します。また、TLS プロトコルバージョン>=1.2と最新の暗号スイートが必要です。
  • 次に、Apacheを実行していることを確認します 2.4.17 このバージョン以降ではHTTP/2がサポートされているためです。
  • また、クライアント/ブラウザが実際にHTTP/2をサポートしていることを確認してください。

mod_phpモジュールを無効にします

次のステップでApacheMPMモジュールをmpm_eventに切り替える前に、古いmod_phpモードを無効にして、より新しいPHP-FPMモードに置き換える必要があります。コマンドはオペレーティングシステムのバージョンごとに異なります。インストールされているシステムに一致するものを使用してください。

Ubuntu 20.04 LTS

sudo apt-get install php7.4-fpm
sudo a2dismod php7.4
sudo a2enconf php7.4-fpm
sudo a2enmod proxy_fcgi

Debian 10

sudo apt-get install php7.3-fpm
sudo a2dismod php7.3
sudo a2enconf php7.3-fpm
sudo a2enmod proxy_fcgi

Ubuntu 18.04 LTS

sudo apt-get install php7.2-fpm
sudo a2dismod php7.2
sudo a2enconf php7.2-fpm
sudo a2enmod proxy_fcgi

Debian 9

sudo apt-get install php7.0-fpm
sudo a2dismod php7.0
sudo a2enconf php7.0-fpm
sudo a2enmod proxy_fcgi

HTTP/2と互換性のあるApacheMPMを有効にする

デフォルトでは、ApacheはプリフォークMPMを使用します。このMPMはHTTP/2と互換性がないため、より新しいmpm_eventモジュールに置き換える必要があります。

まず、mpm_preforkモジュールを無効にします:

sudo a2dismod mpm_prefork

次に、mpm_eventモジュールを有効にします。

sudo a2enmod mpm_event

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

ApacheでHTTP/2を機能させるには、SSLおよびHTTP/2モジュールを有効にしてロードする必要があります。これを行うには、ターミナルで次のコマンドを実行します。

sudo a2enmod ssl

そして

sudo a2enmod http2

これらの新しいモジュールをアクティブ化するには、以下を実行する必要があります:

sudo systemctl restart apache2

必要なApacheモジュールを有効にしてロードした後、Apache構成ディレクトリに移動し、Apache構成を編集します。

ApacheWebサーバーでHTTP/2を有効にするには、グローバルApache構成または特定の仮想ホスト内に次のいずれかを追加します。

Protocols h2 http/1.1

一部の仮想ホストでHTTP/2を有効にするために使用できる最小限の仮想サーバー構成は次のとおりです。

<VirtualHost *:443>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/public_html/example.com
SSLEngine on
SSLCertificateKeyFile /path/to/private.pem
SSLCertificateFile /path/to/cert.pem
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
Protocols h2 http/1.1
</VirtualHost>

サーバーがHTTP/2をサポートしているかどうかを確認するには、ブラウザの開発ツールを使用できます。以下は、 https://example.comでHTTP/2が動作していることを示すGoogleChromeおよびAppleSafariブラウザのスクリーンショットです。 ドメイン。

Chrome

サファリ

リンク
  • RFC 7540
  • HTTP / 2

Ubuntu
  1. ubuntu Webサーバーでmod_rewriteを有効にする方法は?

  2. Ubuntu13.10にApacheWebサーバーをインストールして構成する方法

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

  1. UbuntuからApacheWebサーバーを削除する方法

  2. Ubuntu 18.04 /Debian9にNginxをインストールして構成する方法

  3. Debian11にApacheWebサーバーをインストールして設定する方法

  1. UbuntuにApacheWebサーバーをインストールして構成する方法

  2. Ubuntu20.04でApacheを使用してHTTP/2プロトコルを有効にする方法

  3. Debian11BullseyeまたはUbuntu20.04にlighttpdWebサーバーをインストールする方法