HTTP / 2とは何ですか? 名前が示すように、これはHTTPプロトコルの2番目のバージョンです。 少なくともWikipediaで利点についての詳細を読むことができます。 私に代わって、共有ホスティングをホストしていない場合は、このプロトコルをサポートする必要があります。たとえば、HTTPSも必要です。 はい。HTTP/ 2が機能するためには、sshまたはその他の方法で、マシンのコンソール(仮想)に完全にアクセスする必要があります。また、既に構成済みのHTTPS(TLS / SSL)が必要です。 さて、ビジネスに取りかかりましょう。
最初のステップ。 Apacheアップデート
HTTP / 2プロトコルはバージョン2.4.24からのApacheサーバーでサポートされているため、古いバージョンがインストールされている場合は、それを更新します。 しかし、最初に確認してください:
apache -v
このコマンドは次のようなものを生成します。
Server version: Apache/2.4.37 (Ubuntu) Server built: 2018-10-28T15:27:08
最初の行は、サーバーのバージョンを示しています。 2.4.24以上であれば、安全に2番目のステップに進むことができます。 それ以外の場合は、Apacheを更新する必要があります。Apacheの現在のバージョンは、有名な開発者のPPAで見つけることができます(すでにDebian / Ubuntuに新しいものを追加する必要がある場合)-OndřejSurý。 PPAは、公式の配布リポジトリに含まれていない個人用パッケージです。 したがって、それらを使用するには、まずシステムに何をどこで入手するかを教える必要があります。
sudo add-apt-repository ppa:ondrej/apache2
男は良い仕事をしていて、小さなドーナツを手に入れることを気にしません。これは彼のカブに接続するときに非常に明確に述べられています...
さらに、実際には、パッケージを更新します。
sudo apt update sudo apt upgrade
また、Apacheのバージョンを確認します。 すべてがうまくいけば、Apacheがサーバーにインストールされ、HTTP / 2を構成できます。 すべてがうまくいかなかった場合-これはこの記事のトピックではないようです。 次に、2番目のステップに進みます。
ステップ2 FastCGIを使用する
FastCGIとは何ですか-少なくともWikipediaで述べたように、簡単に説明することはできないため、読んでおく方が良いでしょう。 FastCGIモードで実行しているPHP(php-fpm)に切り替える必要があります。 仕組み- トースターで適切な答えが得られます。 ここではそのようなニュアンスには触れませんが、すぐにインストールに進みます。
sudo apt install php-fpm
インストール後、文字通り次のように通知されます。Apache2でPHP 7.2 FPMを有効にするには、次のようにします。
sudo a2enmod proxy_fcgi setenvif sudo a2enconf php7.2-fpm
します。 その後、mod_phpを無効にする必要があります。その代わりに、現在php-fpmがあります。
sudo a2dismod php7.2
一般的に言えば、それまでに異なるバージョンのPHPを使用していた可能性があります。 / etc / apache2 / mods-available /ディレクトリのシステムにインストールしたモジュールを見ることができ、 / etc / apache2 / mods-enabledでアクティブになっています。
次に、Apacheを再起動します
sudo service apache2 restart
そして、3番目のステップに進みます。
ステップ3 Preforkからイベントへの切り替え
MPMとは何か、prefork、event、workerの違いは何ですか? この素晴らしい記事でここで読むことができます...しかし、今では、「標準」preforkはHTTP / 2とあまり互換性がないため、より適切なものを使用する必要があります。 。 一方をオフにし、もう一方をオンにして、Apacheを再起動します。
sudo a2dismod mpm_prefork sudo a2enmod mpm_event service apache2 restart
4番目のステップ。 HTTP / 2を有効にする
/ etc / apache2 / sites-enabled /ディレクトリまたは/etc/apache2/apache2.confサーバーの構成自体にあるホスト構成ファイルのいずれかで、新しいプロトコルのサポートが必要であると言います。
Protocols h2 h2c http/1.1
本当に重要なのはh2です。 他の2つのポイントはあなたの裁量です。 h2cは、TCPを介したHTTP / 2サポートです(TLSではありません)。 http / 1.1 -HTTPの古いバージョンのサポート。
http2モジュールをオンにして、サーバーを再起動します。
sudo a2enmod http2 service apache2 restart
到着しました
これから。 リソースはHTTP / 2で動作を開始するはずです。 リソースにアクセスしてChromeを使用すると、ブラウザーの右上隅にある稲妻が青色に点灯する様子がわかります。 その上にカーソルを合わせると、HTTP / 2対応(h2)プロンプトが表示されます。 Firefoxで、開発者パネルに移動し、[ネットワーク]タブで[プロトコル]列をオンにします。サイトのリソースについては、HTTP / 2.0がリストされているはずです。 リソースがWeb上の多くのサイトの1つでこのプロトコルをサポートしているかどうかも確認できます。 しかし、 HTTP / 3は既にその真っon中にあるので、リラックスしないでください:)