Google認証なリバースプロクシ&静的コンテンツ配信サーバー「gate」
Kibana や Grafana を使う時に、これらはjsのツールなので、 Erasticsearch や InfluxDB といったバックエンドサービスにjsからアクセスできるようにする必要がある。
そのためには、
- 普通にバックエンドサービスのportを開放
- nginxとかでリバースプロクシ
とかする必要があり、めんどくさい。
さらにセキュリティのことを考えると、2の方法のうえに、nginxでSSL+Basic認証なんかにする必要があってよりめんどくさい。
さらに、僕はBasic認証が嫌いだ。 昔は Firefox + 1Password で良い感じにBasic認証の入力が行えたが、いまはだめになってしまったし、 Basic認証だとアカウントの管理もめんどくさい。
なので、Google認証なhttpdでリバースプロクシもできる、gateというツールを作った。
バイナリのダウンロード も可能。
使い方
設定ファイルのサンプル を自分に合うように変更して、
$ gate -conf config.yml
のように起動するだけ。サンプルを見たらだいたい分かると思う。
実例
自分は /
にアクセスすると、Grafanaが見えて、 /uchiwa
にアクセスすると、sensuのdashboardが見えるようにしている。
その場合の設定は
htdocs: ./grafana-1.6.1
proxy:
- path: /elasticsearch
dest: http://127.0.0.1:9200
strip_path: yes
- path: /influxdb
dest: http://127.0.0.1:8086
strip_path: yes
- path: /uchiwa
dest: http://127.0.0.1:3000
strip_path: yes
- path: /socket.io
dest: http://127.0.0.1:3000
strip_path: no
こんな感じになる。[1]
/
にアクセスが来たら Grafana のファイルを配信。
/elasticsearch
以下のアクセスは elasticsearch にプロクシしてやる、みたいな感じだ。
uchiwaはwebsocketを使うのだけど、gateはこのためだけにwebsocketもproxyできるようにしたので、 こういう感じに設定しておくとうまく動く。
自分以外に需要があるかは不明だが、Grafanaやuchiwaをうまく認証付きで公開したい、 というような場合にはなかなか便利だと思う。