干し風呂

しのごの言わずにやるブログ

Raspberry Pi 2 Model B でHTTP/2 (by h2o) Hello World

f:id:dothoshirc:20151206152604p:plain

調子に乗って二日連続書いてます。

ラズベリーパイでついでにHTTP/2サーバを動かしてみました。 もちろんh2oを使います :D github.com

HTTP/2については世の中に詳しく説明された情報がたくさんあるのでググってくださいということで、導入した流れだけサラッと記していきます。

目次

  • 導入手順
  • 確認
  • 終わりに

導入手順

cmakeインストール

cmakeが必要なので入れておきます。

$ sudo apt-get install cmake

h2oインストール

$ cd ~/git_repo/
$ git clone https://github.com/h2o/h2o.git
$ cd h2o
$ git submodule update --init --recursive
$ cmake .

ぎゃー。と、ここでなんかエラー出たCMake Error at CMakeLists.txt:21 (CMAKE_MINIMUM_REQUIRED): CMake 2.8.11 or higher is required. You are running version 2.8.9
ということなので言われた通りにします。一応確認。

$ cmake --version
cmake version 2.8.9

ほんとだ。2.8.11 以上を使えって言われてるのでとりあえず2.8.11を持ってきます。

$ cd /usr/local/src/
$ wget http://www.cmake.org/files/v2.8/cmake-2.8.11.tar.gz
$ sudo tar -xzvf cmake-2.8.11.tar.gz
$ cd cmake-2.8.11/
$ sudo ./configure
しばし待つ...
$ sudo make
しばし待って完了

気を取り直してh2oインストールを進めます。

$ cd ~/git_repo/h2o/
$ /usr/local/src/cmake-2.8.11/bin/cmake .
$ make h2o
しばし待つ....

完了です。

configファイル修正

configファイルを少し修正します。

$ cp examples/h2o/h2o.conf examples/h2o/test.conf
$ vim examples/h2o/test.conf

中身

listen:
  port: 8080
  ssl:
    certificate-file: /etc/letsencrypt/live/<FQDN>/fullchain.pem
    key-file:         /etc/letsencrypt/live/<FQDN>/privkey.pem

証明書はletsencryptを使って発行しました。(一つ前の記事参照)

dothoshirc.hatenablog.com

起動

$ ./h2o -c examples/h2o/test.conf

簡単!

確認

アドレスバーがちゃんと緑のhttps://になって、青いイナズマが出てます。

f:id:dothoshirc:20151206150253j:plain

Chrome ExtentionのHTTP/2 and SPDY indicatorを入れているので青いイナズマが表示されています。

chrome.google.com

終わりに

Hello worldなのでここまで。Raspberry PiでHTTP/2環境を簡単に作れました。 HTTP/2のプロトコル仕様ではhttpsは必須では無いですが、現状ブラウザがhttpsでしかサポートしていないのでSSL/TLS化しています。 そのうち Rails on HTTP/2 on Raspberry Pi でもやりたいと思います。