Gazelle
2021年03月21日公開 672 Views

Apacheでのhttp2対応と速度改善

Apacheの2.4以上だと簡単にhttp2対応できるとのことなので試してみる。

設定方法

設定はHTTPSのVirtualHost内に一行書いてsystemctl restart httpdで再起動すれば良い。

<VirtualHost *:443>
    ServerName xxx
    DocumentRoot xxx
    ...
+    Protocols h2 http/1.1
</VirtualHost>

確認方法

WebInspectorを立ち上げてNetworkタブへ行き、Protocol情報を確認すれば良い。Protocol情報はdefaultでは表示されていないと思われるのでHeader部分を右クリックして、追加項目を表示してProtocolにチェックを入れると良い。
image.png

速度が改善したか?

とある私のWebサイトにこの設定を入れて、速度が改善されたかを確認。

私のサイトはgatsbyjsで作られておりページ起動時に20程度のファイルを自サーバーから読み込む。下記のような感じ。
image.png

HTTP2は大量の同時リクエストを裁くのに適したプロトコルであるため、pagespeed insigntでもある程度、結果が良くなるのではないかと期待。

特にgatsbyはrender済のhtmlファイルを最初に読み込むため、初期のページ表示は速いが、その後で大量のモジュールを読み込むため、Interactiveになるまでの時間が遅く、TimeToInteractiveの改善には貢献するのではないかと予測は立つ。

結果
image.png

何度か実行してみたが、http1.1と有意な差は見られなかった。まあ何となく気分的に速くなった気だけはするので、一応導入はしておこうと思う。

関連記事

CentOS7環境においてnginxとrails6、PUMAアプリケーションサーバを組み合わせ、RailsアプリケーションをProductionモードで動作させる手順を説明します。
2020年03月15日
さくらVPSでコマンドが何故か重くなった時に、コンソールのCPU使用時間やtopコマンドでのCPU使用率を調査して原因を特定し、不要プロセスを終了させようという話。
2020年04月03日
ApacheでCache-Controlのmax-ageを設定して再訪問時の高速化を図る
2020年08月17日
ホームへ戻る