WordPress Apache の HTTP/3 対応

190

重要:2025年12月29日現在、Apache を HTTP/3 で動作させることはできません。

HTTP/3 のメリット

前回、HTTP/2 対応を実装しましたが、今回は Apache への HTTP/3 の導入を行い、最速の WordPress を目指します。WordPress が稼働するウェブサーバーが HTTP/3 対応した場合のメリットは以下のとおりです。

  • 最初のパケットが届くまでの待機時間が削減され、LCP が改善される
  • 不安定な 4G/5G 回線でも安定してページが表示される
  • Wi-Fi から 4G/5G に切り替わった時、通信を維持したままネットワーク切替が可能

技術的な理由部分は割愛しますが、HTTP/2 と HTTP/3 との違いは以下のとおりです。

HTTP/2HTTP/3WordPressのメリット
ベース技術TCPQUIC/UDP接続確立の高速化
エラー時の挙動全リクエストが停止該当ファイルのみ停止不安定回線の表示維持
接続切替切断維持モバイル環境の高速化
表示速度高速超高速(特にモバイル)

特にエラー時の挙動の効果が大きいと考えられます。つまり、モバイル回線でパケットロスなどにより一部の画像の読み込みに失敗・遅延が発生しても、他の CSS や JS の読み込みを止めることがありません。画像の遅延読み込み (Lazy loading) なしでも、モバイルにおける画像表示の高速化が期待できます。

Apache は HTTP/3 非対応

俄然ヤル気でこの記事を書いていたのですが、Apache における HTTP/3 対応は現在できないことがわかりました。

パッケージ版の Apache で HTTP/3 に対応していないことは分かっていましたので、以下をコンパイルして動作させるつもりで作業を進めました。

quictls:OpenSSL 互換の QUIC 互換ライブラリ
nghttp3:HTTP/3 フレーム層の制御を行うライブラリ
ngtcp2:QUIC プロトコル層の制御を行うライブラリ
Apache:httpd 本体

ところが、最新の Apache 2.4.66 のソースコードから HTTP/3 用のコードが削除されていて、configure をしている時にこれに気がつきました。公式サイトを確認したところ、HTTP/3 の実装は 2.5系 を目標に進められていることが分かりました。

HTTP/2 および HTTP/3(QUIC)実装の第一人者である Stefan Eissing 氏のコメントを要約すると「Apache 2.4系 の mod_h2 への HTTP/3 の統合は困難であり、さらに、HTTP/3 (QUIC) は UDP を使用するため、TCP 前提で設計されている Apache 2.4 のコア(MPM等)を大幅に改造しなければならない。」とのことで、2.4系 での HTTP/3 の開発を停止したようです。そのため、現在は 2.5系 で基盤から作り直す方針とのこと。

いくら configure が通っても h3 が作られないわけですね。コードに存在しないんですから。

ちなみに私も最初に参考にしていた ITtrip さんの HTTP/3 導入手順 は間違っていません。記事作成時点は 2.4系 向けに mod_h2 内で H3 を実験していた時期だからです。ソースコード内に HTTP/3 用のコードが存在していたはずです。

どうすればいいのか?

現時点で WordPress で安定して HTTP/3 を使用するには、以下の二つの選択肢があります。

  • 既に HTTP/3 対応を実装している Nginx に切り替える
  • Cloudflare などの HTTP/3 対応の CDN を使用する

ここまできて httpd を Nginx に代えるのは気に入りませんし、個人サイトで CDN は否定派のため、当サイトは Apache が正式に HTTP/3 を実装するまで待つこととしました。

商品画像
makorin
  • makorin
  • AI を使用して情報を得ることが普通の時代になりました。その AI もウェブ上に公開されている情報を元にして動作しています。その情報の一つになればいいなという、極々ささやかな思いで気ままに更新しています。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください