手当たり次第に書くんだ

飽きっぽいのは本能

Ubuntu 22.04 Apache Web サーバー構築 HTTP/2 有効化

目次に戻る

Overview

Apache で HTTP/2 を有効化します。

前提条件

  • こちらを参考に Apache をインストール済みであること。
  • こちらを参考に Apache の TLS 化が完了していること。

設定の有効化

HTTP/2 を有効化します。

myadmin@ubuntu:~$ sudo a2enmod http2

設定を有効化します。

myadmin@ubuntu:~$ sudo systemctl restart apache2.service && systemctl status apache2.service

/etc/apache2/mods-enabled/http2.conf

a2enmod http2 を実行すると、以下のファイルのシンボリックリンクが生成されます。このファイル内には Protocols h2 h2c http/1.1 と記述されており、これによりグローバルで HTTP/2 が有効になります。具体的には h2 が HTTP/2 を示します。h2c は http における HTTP/2 です。h2c の必要性は実質的にほぼないのですが、特に困ることもないのでデフォルト値を採用しています。最後にどれにも該当しない場合は http/1.1 が使用されます。

myadmin@ubuntu:~$ cat /etc/apache2/mods-enabled/http2.conf 

# mod_http2 doesn't work with mpm_prefork
<IfModule !mpm_prefork>
    Protocols h2 h2c http/1.1

    # # HTTP/2 push configuration
    # 
    # H2Push          on
    # 
    # # Default Priority Rule
    # 
    # H2PushPriority * After 16
    # 
    # # More complex ruleset:
    # 
    # H2PushPriority  *                       after
    # H2PushPriority  text/css                before
    # H2PushPriority  image/jpeg              after   32
    # H2PushPriority  image/png               after   32
    # H2PushPriority  application/javascript  interleaved
    # 
    # # Configure some stylesheet and script to be pushed by the webserver
    # 
    # <FilesMatch "\.html$">
    #     Header add Link "</style.css>; rel=preload; as=style"
    #     Header add Link "</script.js>; rel=preload; as=script"
    # </FilesMatch>
    # Since mod_http2 doesn't support the mod_logio module (which provide the %O format),
    # you may want to change your LogFormat directive as follow:
    #
    # LogFormat "%v:%p %h %l %u %t \"%r\" %>s %B \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
    # LogFormat "%h %l %u %t \"%r\" %>s %B \"%{Referer}i\" \"%{User-Agent}i\"" combined
    # LogFormat "%h %l %u %t \"%r\" %>s %B" common
</IfModule>

正常性確認

curl でも簡易的な確認が可能ですが、Chrome のデベロッパーツールで確認するのが確実だと思います。未確認事項として、WordPress などのリッチな画面を返す場合は HTTP/2 での通信を確認することができますが、シンプルな Web ページでは HTTP/1.1 でしか通信されません。何らかの条件で切り替えていると思いますが、今後の課題とします。

目次に戻る

Ubuntu 22.04 Apache Web サーバー構築 HTTP/2 有効化

コメントを残す

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

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る