複数の host に reverseproxy みたいに request を clone して投げて response を集める

github.com

複数の host に reverseproxy みたいに request を clone して投げて response を集めたかったのでそういうのを書いてみた。 proxy 自体の response は json になっていて、proxy 先のレスポンスも正しい json の場合はそのまま展開、そうじゃなかったら空かbase64 に encode するようにしてみた。

$ proxy-collector -config config.json -host 127.0.0.1 -port 7423
$ curl -s 127.0.0.1:7243/ping | jq . # => (http://localhost:5000/ping, http://localhost:6000/ping)
[
  {
    "target": "http://localhost:5000",
    "body": {
      "pong": "ok"
    },
    "status_code": 200
  },
  {
    "target": "http://localhost:6000",
    "body": {
      "pong": "ok"
    },
    "status_code": 200
  }
]

$ cat config.json
{
        "target_list": [
                "http://localhost:5000",
                "http://localhost:6000"
        ],
        "body_fallback": 0
}

こんな感じ。

wercker, docker のほうにしたら立ち上がるまでがめっちゃ早くなった