HTTP/2をApache2に導入してみる。

Apacheまわりをいじっているタイミングで、HTTPのプロトコルが1.1で動いているのを見つけ、2に上げることにしました。まったくパフォーマンスを必要とせず、恩恵もなさそうなサイトですが(笑)アイキャッチ画像もネタ切れで、わけのわからないものに……

HTTP/2の説明については詳しく、わかりやすい説明がネット上にたくさんありますので、ググってみてください(まるなげっす)

で、本題です。

サクッとApache2の設定を変えれば良いのかと思いきや、Apache2の標準のマルチプロセッシングモジュールがHTTP/2に完全対応していないっぽい。

mpm_prefork から mpm_event や mpm_worker に変更するのが良いらしいので、マルチスレッドのイベント駆動型のmpm_eventを採用し進めていきます。

mpmを変更します。

sudo a2dismod mpm_prefork
sudo a2enmod mpm_event

といっても、これだけ。

HTTP/2を有効に。

sudo a2enmod http2

httpsでのアクセスしか無いので、

sudo vi /etc/apache2/sites-available/monmon.jp-le-ssl.conf

設定ファイルに。

<VirtualHost *:443>
    ServerName monmon.jp
    ServerAlias www.monmon.jp

プロトコルを追加。

<VirtualHost *:443>
    Protocols h2 http/1.1
    ServerName monmon.jp
    ServerAlias www.monmon.jp

最後にApacheを再起動。

sudo systemctl restart apache2

通信プロトコルが無事、HTTP/2になりました。