Запустите два разных приложения Rails на одном выделенном сервере. - PullRequest
16 голосов
/ 20 сентября 2011

У меня есть один выделенный сервер с конфигурациями ниже

i3 - Dual Core - 3.06Ghz H/T
16GB RAM
500GB SATA2

Теперь я хочу запустить два разных приложения Rails на одном выделенном сервере. Оба приложения различны, но они используют общую базу данных.

Возможно ли это сделать? Если да - как я могу это сделать? Является ли Phusion Passenger с Apache хорошим подходом? Если да - Как я могу настроить два приложения на одном сервере Phusion Passenger?

Ответы [ 3 ]

13 голосов
/ 21 сентября 2011

Я опишу, как я запускаю несколько приложений Rails на одном сервере Linux, используя Apache, Phusion Passenger и некоторые версии Ruby.У вас есть много вариантов, но это должно помочь вам начать.Многие из этих деталей взяты из сценария установки

Во-первых, установите Phusion Passenger.

> gem install passenger

Во-вторых, соберите модуль Apache 2 Passenger.Вы должны быть в состоянии выполнить следующий скрипт, установленный во время первого шага.

> passenger-install-apache2-module

Этот скрипт скомпилирует модуль Apache 2 и объяснит, как настроить Apache.Если зависимости отсутствуют, скрипт должен дать несколько полезных советов о том, как их установить.

В-третьих, отредактируйте файл конфигурации Apache.Я должен добавить что-то вроде этого.(Просто используйте это для ссылок и не беспокойтесь о .rvm.) Сценарий, запущенный на втором шаге, даст вам то, что вы можете скопировать и вставить.

LoadModule passenger_module /Users/me/.rvm/gems/ree/gems/passenger-3.0.9/ext/apache2/mod_passenger.so
PassengerRoot /Users/me/.rvm/gems/ree/gems/passenger-3.0.9
PassengerRuby /Users/me/.rvm/wrappers/ree/ruby

В-четвертых, добавьте что-то подобное в свой Apacheфайл конфигурации для каждого приложения , которое вы хотите запустить.

<VirtualHost *:80>
  ServerName app1.example.com
  DocumentRoot /somewhere/app1/public    # <-- be sure to point to 'public'!
  <Directory /somewhere/app1/public>
     AllowOverride all              # <-- relax Apache security settings
     Options -MultiViews            # <-- MultiViews must be turned off
  </Directory>
</VirtualHost>

Если у вас есть два приложения Rails, совместно использующих одну базу данных, они оба будут иметь одинаковую информацию о соединении в config / database.yml

1 голос
/ 20 сентября 2011

Да, это определенно возможно.Я никогда не делал это с Passenger + Apache, но я уверен, что это хороший способ.Я только когда-либо делал это с thin + nginx.

0 голосов
/ 20 сентября 2011

Passenger Phusion с Apache - это надежный подход.Тот факт, что они используют одну и ту же базу данных, не должен быть проблемой (просто убедитесь, что они ни в коем случае не наступают друг на друга).

Как правило, просто установите все как обычно, но возьмитепосмотрите на виртуальные хосты на основе имен Apache:

http://httpd.apache.org/docs/2.2/vhosts/name-based.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...