火曜日, 5月 19, 2015

まぁ、リバースプロキシやるよ。

夢を見ていた。
1IP<=>multi domainって、さくっとリバースプロキシやらなくてもいいんじゃない?
もしかしたら、いけんじゃね?とか思っていましたが、出来なかったんで、リバースプロキシにしたよって話を書きます。

この記事でやりたいこと

multi domain<=>1IPをやりたい。
外部のサブドメイン(そのマシンに対してのトップドメイン、サブドメインは*の状態)で仮想マシンに対して通信をさせるようにしたい。(httpd,sshなどなど
前に血迷った記事書いた。あれはあれで別の方向で育てる。

とある面倒な事

なんか、開発しててこんなことがあったりしますね。
  1. 開発・検証環境あげないと、アプリでは確認できない。
    1. ローカルに対してドメインでアクセスできないから。
    2. virtualhostで開発PCではhostsとかに書いて名前解決できているけど、スマフォには適用させることができないから。
自社内に、DNSサーバーを持っている かつ DNSに対して変更を加えるのが容易ならいいかもしれませんね。
開発環境は外に持っていなくてもいいと一つ経費かかるのが減りますし。

本音は自分で触るサーバーがあるので、その辺を整える時に一つしかIP持っていないけど、アクセスする時にはFQDNでアクセスしたい。

そんな時は、Http reverse proxyですぞ。

構成的には、

こんな感じ。

環境を作っていくぞ。

https://gist.github.com/tluna/75b8fcb89ff437036e82#file-1
こんな感じ。

各々rails入れていくぞ。

reverse proxyを設定するぞい。

https://gist.github.com/tluna/75b8fcb89ff437036e82#file-3-reverse-proxy

あとは、ホストPCからアクセスできるか確認、あれ?繋がらないを繰り返しましょう。 原因は、だいたい凡ミスです。
これで、VM上のサービスをいつでもみれるね。よかったね。。。
DNSがいじれるなら、欲しいだけ、ドメインを切るが良いさ。
ただ、上記の設定は問題がありますね。

  1. 静的ファイルをスクリプトファイル側が管理しないといけない。
    1. んー。VMじゃなかったら、これは、staticなパスをきればいいけど、VMだったら、このまま?それとも、追加で各々にnginxまたいれるの?(いやかな。)
  2. 4xx,5xxのページを用意していない。
    1. さくっと用意できるならすれば良い。
代わりに良い点としては、
  1. 簡単なLBが作れちゃう。
    1. 検証していないけどな!
    2. http://ameblo.jp/yuu-sys-guard/entry-11873359237.html
  2. 大変なコンパイル作業とapacheからの解放。
    1. 個人的にこれがでかいかな。
  3. バックエンド側は種類が豊富。
    1. 楽しい楽しい選定タイム。
まだ重たくて重たくて仕方がない、LBをこさえるか。なんて状態になったことがないですし、そういうのは用意されていることが大半なので、まぁ、開発だけかな。これ。


あとがき:
これを書き始めたときにopenflowの構築に足を突っ込んだ(昨日)。 これはこれで面白いと思ったので、今度はvmをちゃんと用意してその中でopenflowしたいかな。