Запустите два разных приложения Rails на одном выделенном сервере

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

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

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

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

3 ответов


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

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

> gem install passenger

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

> 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


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


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

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

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