AWS LightsailのWordpressインスタンスではHTTP/2が標準で有効になっていません。しかし、SSL化してHTTPSサイトを作ったのならば、サイトの速度的にも有利なのでHTTP/2を有効化してみます。
AWS Lightsailでは、BitnamiというWordpressを動かすためのパッケージソフトが稼働しています。Bitnamiの公式サイトにHTTP/2を有効化するための手順が掲載されていますので、手順に沿って進めていきます。
⬇️Bitnami公式ドキュメント
目次
手順1 アプローチA or Bを判定する
Bitnamiは日々アップデートされており、利用しているBitnamiバージョンによりHTTP/2を有効化するための手順がアプローチA or アプローチBの2種類あるようです。コマンドを実行する事で、アプローチA or Bを判定します。
以下のコマンドをAWS LightsailのSSHから実行します。
コマンドをコピー&ペーストしてリターンキーを押下します。
test ! -f “/opt/bitnami/common/bin/openssl” && echo “Approach A: Using system packages.” || echo “Approach B: Self-contained installation.”
すると、アプローチA or Bが表示されます。画像では、既にHTTP/2化が終わった環境のためかApproach Aと表示されていますが、HTTP/2化する前はApproach Bと表示されていました。そのため、以下手順はApproach Bとなりますので、ご注意ください。
手順2 Apacheのmod_http2モジュールを有効化する
Apacheのmod_http2を有効化します。SFTP対応ソフトで以下のファイルにアクセスします。「/opt/bitnami/apache2/conf/httpd.conf」ファイルの140行目付近に「#LoadModule http2_module modules/mod_http2.so」と記載されているので、頭にある#を削除して保存します。
手順3 「bitnami.conf」HTTP/2プロトコルに関する記述を追記
「/opt/bitnami/apache2/conf/bitnami/bitnami.conf」ファイルに以下の赤字を追記します。
<VirtualHost _default_:80>
…
Protocols h2 h2c http/1.1
H2Direct on
</VirtualHost>…
<VirtualHost _default_:443>
…
Protocols h2 h2c http/1.1
H2Direct on
</VirtualHost>
具体的には、以下の手順をSSHで実行していきます。
- sudo vi /opt/bitnami/apache2/conf/bitnami/bitnami.conf を実行
- 「i」キーを押下して、INSERTモードを起動
- Protocols h2 h2c http/1.1
H2Direct on を追記
該当箇所まで矢印キーで移動して、リターンキーで2行行間を空けた後、コピー&ペーストします。<VirtualHost _default>から</VirtualHost>に囲まれた記述の最後の方に、# END: Support domain renewal when using mod_proxy within Locationという記述があったので、その下の2箇所に追記しました。
- 「esc」キーを押下
- 「:wq」と入力して実行
(:wqはファイルを保存してから終了するという意味) - sudo sh /opt/bitnami/ctlscript.sh restart apache を実行
apacheが再起動するとWordpress画面にアクセスできるようになります。再起動する事でmod_http2モジュールが読み込まれ、HTTP/2で通信されるようになります。
手順4 HTTP/2で通信されているか確認
Chromeで確認する方法
「Network > All > Protocol」の箇所に「h2」と出ていればHTTP/2通信できています。
GTmetrixで確認する方法
サイト速度測定ツールであるGTmetrixでも確認できます。
サイトを測定後、Structureの項目内に「Use HTTP/2 for all resources」が問題なしと表示されていれば、HTTP/2通信できています。
⬇️HTTP/2通信できていると、こんな表示になります。
まとめ
AWS Lightsailは手軽にWordpressを起動することができますが、HTTP/2通信をさせたい!など細かい事にこりだすと、結構大変です(笑)この記事が誰かの役に立てば幸いです。
⬇️参考にさせていただいたサイト