超シンプルな HTTP リバースプロキシとして動作するだけのコンテナ を作って Docker Hub に置いておいた。
https://hub.docker.com/r/ssig33/simple-reverse-proxy/
以下のように使う。
docker run -p 5000:80 ssig33/simple-reverse-proxy example.com:3225
こうすれば http://localhost:5000 => http://example.com:3225 へのリバースプロキシとして動作する。
これでどういううれしいことができるかというと、以下のようなことができる。 Docker Swarm Mode の外で動いている Web アプリがあったとき、それに対してリバースプロキシとしてのみ動作する service を Swarm クラスタに投入すれば、 Docker Swarm Mode のサービスディスカバリに Swarm クラスタ外のものを投入させることができる。
Swarm クラスタの状態などからエンドポイントを機械的に生成している場合などに、 Swarm クラスタ外のものに簡単に URL を付与できて便利。
たんに nginx の設定生成してるだけのばかげたものなんだけどコマンド一発で使えるとなにかとよい。こういう自分専用みたいなものもどんどん Docker Hub にあげてしまってよいと思っている。