如何在Ubuntu服务器上托pipe2个版本的Rails应用程序

我正尝试在同一台服务器上托pipeRails应用程序的多个版本(开发和分期),但目前我无法通过浏览器访问这两个版本。

我使用的是Apache2,Passenger,Rails 3和Ubuntu 10.04 LTS。

我想通过相同的IP访问这两个站点,但有不同的端口。 这是允许的吗? 当我通过“ http://1.2.3.4 ”访问临时环境时,它工作得很好,但是当我尝试通过“ http://1.2.3.4:8080 ”访问开发环境时,浏览器说它不能连接到“ http://1.2.3.4:8080 ”。

从理论上讲,这个工作应该如何 我是否需要分配实际的域名(例如“ 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-apps的build议创build了config / setup_load_paths.rb。

Passenger可能被configuration为在端口80上发布这两个应用程序(我没有看到一个自定义configuration覆盖这个地方)。

不过,我会使用虚拟主机的域名,即:

 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上,你可以把每个vhostconfiguration添加到网站上 – 可用,并使用a2ensite来打开/closures=>我们有2台服务器,我们这样使用,第一个有15个不同的地点,第二个有10个左右。