Edited at

Apache Traffic Server で HTTP/2 を有効にする方法

More than 3 years have passed since last update.


はじめに

この記事は Apache Traffic Server (以下 ATS) で Hypertext Transfer Protocol Version 2 (以下 HTTP/2) を有効にする 最低限 の設定方法をまとめたものです。


Step 0: いつくかの前提


  • OpenSSL 1.0.1系 もしくは 1.0.2系

  • ATS v6.0.0


    • ATS は HTTP/2 over TLS のみをサポートしているので、HTTP/2 を有効にするには SSL/TLS の設定が必要です。


    • /usr/local/ 下にインストールしてあるとします。

    • ATS のビルドとインストールについては Getting Started — Apache Traffic Server documentation を参照してください。

    • デフォルトでは records.config などの設定ファイルは /usr/local/etc/trafficserver/ 下にあります。




Step 1: SSL/TLS の設定


ポートの設定

仮に 4443 ポートで HTTP/2 を受けたいとします。records.configproxy.config.http.server_ports の設定に 4443:ssl を追加します。


records.config

CONFIG proxy.config.http.server_ports STRING 8080 4443:ssl



証明書の設定

仮にサーバー証明書(example.pem)と秘密鍵(example.key)を /usr/local/etc/trafficserver 下に置いているとします。

ssl_multicert.config に次の設定を追加します。


ssl_multicert.config

ip_dest=* ssl_cert_name=example.pem ssl_key_name=example.key



  • 注1: ssl_cert_name=, ssl_key_name= の設定値が相対パスの場合、records.configproxy.config.ssl.server.cert.path の設定値からの相対パスになります。デフォルトでは /usr/local/etc/trafficserver です。

  • 注2: 証明書/秘密鍵を root からのみ読めるようにしている場合 records.configproxy.config.ssl.cert.load_elevated の設定を 1 に変更する必要があります。


Step 2: HTTP/2 の設定

records.configproxy.config.http2.enabled の設定を 0 から 1 に変更します。


records.config

CONFIG proxy.config.http2.enabled INT 1



Step 3: 起動

ATS を起動して 4443 ポートにアクセスしてみてください。

$ trafficserver start

設定を書き換えた場合、ATS の再起動もしくは設定のリロードを行ってください。

$ trafficserver restart

or
$ traffic_ctl config reload


  • 注3: 設定項目によってはリロードでは反映されず、再起動が必要なものもあります。


See Also