2012-03-07 29 views
5

私はウェブを検索しましたが、複数のサイト間でコードを共有したり、データベースを隔離されたモデルに分けたりするための情報しか見つけることができません。これは私が望むものではありません。同じレールサーバ上の複数のプロジェクトの複数のサイト

私は、単一のDNSアドレスおよび単一ポートで、シングルレール・サーバを実行したい - http://myportal.com - いくつかの他のサイトを処理する - http://myportal.com/site1http://myportal.com/site2など

私は、各サイトが独自のフォルダを持っていたいです(そしてSCMリポジトリ)、独自のデータベース、独自のルーティング - それ自身のすべてです。つまり、私はスタンドアローンとして各サイトを開発できるようにしたい、つまりhttp://localhost:3000とし、http://localhost:3000/site1ではなくsite1サイトを実行する必要があることを意味します。サーバー上で

、ルートサイト(http://myportal.comアドレスに応答一つは、私はからサーバーを実行し、それが上の別のディレクトリになります他のサイト(の絶対パスを知っておくべきものでなければなりませんサーバー、ルートサイトの子ディレクトリではない)、それらのルーティング情報を提供しますが、他のサイトのファイルにチェーンする必要があります。つまり、http://myportal.com/site1/books/というアドレスに移動すると、ルートサイトはhttp://myportal.com/site1を処理し、 /books/ルートサイトは、他のサイトの内部ルーティング構造について知る必要はありません。

これは可能ですか?今はgに付属のレールサーバーを実行していますWindows Server 2008サーバー上でコマンドラインからrails serverと入力してください。しかし、私が説明した目標を達成するためには、別のサーバーをインストールするつもりです。

ありがとうございます!

答えて

1

正しく設定されている場合は、Apacheまたはnginx、場合によってはIISでこれを行うことができます。私はApacheとこれを容易にする柔軟なmod_rewritemod_proxyのコンポーネントに最も精通しています。

http://example.com/http://example.com:3000/http://example.com/site2http://example.com:3001/site2などと書き換えます。

これは、乗客とVirtualHostディレクティブの巧妙な使い方でも可能ですが、あなたにとって効果的な設定を得るためには、フィドルする必要があります。内部的にルーティングするヘッダーを書き直しても、サーバーが送信する結果のHTMLには影響しないことに注意してください。

+0

を私が正しく理解していればそう、私は複数のポートを使用する必要がある、とやってDNSのルーティング作業は?単一のポートでこれを行う方法はありませんか? –

+0

DNSはクライアントをサーバーに誘導します。サーバーは、内部的に要求を適切なポートにルーティングする必要があります。 'VirtualHost'ディレクティブはデフォルトで特定のホスト名で特定のポートだけを取得するため、複数のサイトを分割する最も簡単な方法です。複数のホスト+ポートの組み合わせを使用すると、必要な柔軟性が得られます。 – tadman

+0

OK、私はそれを試してみましょう。レール上の 'VirtualHost'に関するチュートリアルはありますか? –

0

シンボリックリンクを作成します。

cd ~/Sites 
ln -s /Users/hg/Developer/Rails/railsproj1/public ./railsproj1 

Apacheの設定ファイルを変更

<VirtualHost *:80> 
    ServerName localhost 
    DocumentRoot /Users/hg/Sites 
    <Directory /Users/hg/Sites> 
    AllowOverride All 
    Options Indexes FollowSymLinks MultiViews 
    Order allow,deny 
    Allow from all 
    </Directory> 
    RailsBaseURI /railsproj1 
    RailsEnv development 
</VirtualHost> 

回答源:http://collab.stat.ucla.edu/users/jose/weblog/9e335/

+0

さらに詳しい出典:http://www.modrails.com/documentation/Users%20guide%20Apache.html#deploying_rails_to_sub_uri – dinnouti

+0

これは私がやったことです。もし私がWindowsマシンで動かす必要がなければ... –

関連する問題