h2o の詳しいことや、その内部構造やら
多分他の日の誰かが書いてくれると思いますので、私はユーザ目線でまったり触ってみる系のエントリを書きます。
h2o を一般的なリバースプロキシ、静的ファイル配信サーバとして使いたい
これをお読みの方の多くは Nginx や Apache を使っているかなと思います。
h2o を使ってみようかなと考えるとき、まず考える用途はこれを置き換えることでしょう。
よくあるユースケースとして “静的ファイルを h2o でホストし、アプリケーションをバックエンドの app サーバに投げる” という設定をやってみます。
h2o をすぐ試したい
h2o の性能を余す所なく体験するには、オーバーヘッドのない環境でビルドして動かすのが一番ですが、まずは運用に乗るかどうか設定や取り回しを検証するのをやりたいと思うのは当然の所かと思います。
そんなわけで、 h2o をすぐお使いいただける Docker image を用意しました。
Docker をお使いの方は下記コマンドですぐに h2o を起動させることができます。
$ docker run -d -p 8080:8080 myfinder/docker-h2o /path/to/h2o.conf
h2o の config 例
listen: 8080
hosts:
default:
paths:
/static:
file.dir: /path/to/docroot
/:
proxy.reverse.url: http://127.0.0.1:5000/
access-log: /dev/stdout
バックエンドのアプリケーションを用意する
今回は動作を見るだけなので、下記のようなワンライナーで良いでしょう。
$ plackup -e "sub { [ 200, ['Content-Type' => 'text/plain'], [ ‘Hello h2o World' ], ]; }"
アクセスしてみる
バックエンド
静的ファイル
- 設定通り / はバックエンドに、 /static は静的ファイルにアクセスできましたね :)
まとめ
本エントリでは h2o をリバースプロキシ&静的ファイルホスティングサーバとして使うための基本的な設定例を示しました。
一般的なリバースプロキシとしての利用ならば、それほど苦労なく使えるので試験できる環境がある方はこういったやり方で試していく事ができます。