Назад | Перейти на главную страницу

Как разместить 2 версии приложения Rails на сервере Ubuntu

Я пытаюсь разместить несколько версий (для разработчиков и промежуточных версий) приложения 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.