同じサーバー上で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>
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のサイトがあります。