Я пытаюсь разместить несколько версий (для разработчиков и промежуточных версий) приложения Rails на одном сервере, но в настоящее время я не могу получить доступ к обоим через браузер.
Я работаю с Apache2, Passenger, Rails 3 и Ubuntu 10.04 LTS.
Я хотел бы получить доступ к 2 сайтам через один и тот же 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>
Примечание: я также создал config / setup_load_paths.rb в соответствии с рекомендациями http://dalibornasevic.com/posts/21-rvm-and-passenger-setup-for-rails-2-and-rails-3-apps.
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, вы можете просто добавить каждую из этих конфигураций vhost в доступные сайты и использовать a2ensite для их включения / выключения => у нас есть 2 сервера, которые мы используем таким образом, и На первом около 15 разных сайтов, на втором - около 10.