18702


qiita:teamのようにサブドメインごとにアプリを機能させるにはどのような方法が用いられてるのでしょうか。

サブドメインごとにサーバーを立ち上げ、railsアプリを動かしているのでしょうか。  
そうなるとサブドメインが増えるたびに自動でサーバーをつくる必要があると思うのですが、  
もうさっぱりどうなっているのかわかりません。

一般的な運用の仕方や、railsを使う際の設計などについておしえてください。

よろしくお願いします。


CC BY-SA 3.0
2015-11-11T16:22:47.177
18699
2015-11-12T05:11:41.970
9149
question
ruby-on-rails ruby nginx
qiita teamのようにrailsのアプリをサブドメインで管理するには


Qita:teamが具体的にどのようなものか分かってませんが、アカウントごとにアプリケーションを提供するしくみ、いわゆる **Saas**
を指しているのでしたら、その実現方法として **マルチテナントアーキテクチャ**
というのがあるそうです。例えばセールスフォースが採用している（いた？）みたいですよ。  
[知られざる「マルチテナントアーキテクチャ」](http://www.publickey1.jp/blog/09/1saas.html)

railsにこのしくみをサポートするgemがあるようです。  
[Apartment
でマルチテナントサービスを作成する](http://qiita.com/kakipo/items/a584d24771dff019d3a9)

期待されている回答とずれていたらすみません。


CC BY-SA 3.0
2015-11-11T20:11:36.943
18702
2015-11-11T20:11:36.943
9403
18699
answer


Webサーバ側では、*.example.jpのようにワイルドカードを指定したバーチャルホストを設定します。バーチャルホストの設定をしない、という手もあります。

Railsアプリケーションの方では、`request.domain`でどのホスト名へのリクエストか取得できるので、そこからユーザー名などを取り出せます。


CC BY-SA 3.0
2015-11-12T00:01:02.523
18704
2015-11-12T05:11:41.970
2015-11-12T05:11:41.970
5793
5793
18699
answer