web-dev-qa-db-ja.com

UbuntuサーバーでRailsアプリの2つのバージョンをホストする方法

同じサーバー上でRailsアプリの複数のバージョン(開発とステージング)をホストしようとしていますが、現在、ブラウザーを介して両方にアクセスすることはできません。

私はApache2、Passenger、Rails 3、およびUbuntu 10.04LTSで実行しています。

同じIPを介して異なるポートで2つのサイトにアクセスしたいと思います。これは許可されていますか? 「 http://1.2.3.4 "」を介してステージング環境にアクセスすると、問題なく動作しますが、「 http://1.2」を介して開発環境にアクセスしようとすると。 3.4:808 "、ブラウザは" http://1.2.3.4:808 "に接続できないと言っています。

理論的には、これは機能するはずですか?実際のドメインを割り当てる必要がありますか(例: " http://example.com "および " http://dev.example.com ")?

# ports.conf

Listen 80
NameVirtualHost *:80
Listen 8080
NameVirtualHost *:8080

# sites-enabled/staging-example.com

<VirtualHost *:80>
  ServerName example.com
  DocumentRoot "/home/www/example/staging/current/public"
  <Directory "/home/www/example/staging/current/public">
    Allow from all
    Options -MultiViews   
  </Directory>
</VirtualHost>

# sites-enabled/dev-example.com

<VirtualHost *:8080>
  ServerName dev-example.com
  DocumentRoot "/home/www/example/dev/current/public"
  <Directory "/home/www/example/dev/current/public">
    Allow from all      
    Options -MultiViews   
    RailsEnv development
  </Directory>
</VirtualHost>

注: http://dalibornasevic.com/posts/21-rvm-and-passenger-setup-for-Rails-2-and-Rails-3-)の推奨に従ってconfig /setup_load_paths.rbも作成しましたアプリ

2
bporter

Passengerは、おそらくポート80で両方のアプリを公開するように構成されています(これをオーバーライドするカスタム構成はどこにも見当たりません)。

それでも、私はドメインでvhostsを使用します。

NameVirtualHost <IP>:80

<VirtualHost <IP>:80>
    ServerName www.x.com
    ServerAlias x.com
    <DocumentRoot  //etc, left out for simplicity...
</VirtualHost>

<VirtualHost <IP>:80>
    ServerName www.dev-x.com
    ServerAlias dev-x.com
    <DocumentRoot //etc, left out for simplicity...
</VirtualHost>

残りを入力すると、Apacheが適切なサーバーを指すようになります。

お役に立てば幸いです。不明な点がある場合はお知らせください

更新:

ちなみに、Ubuntuを使用しているので、これらの各仮想ホスト構成をサイトに追加するだけです-利用可能で、a2ensiteを使用してそれらをオン/オフにします=>このように使用しているサーバーが2つあります。 1つ目は約15の異なるサイトがあり、2つ目は約10のサイトがあります。

1
MaddHacker