Uruchamianie dwóch różnych aplikacji Rails na jednym serwerze dedykowanym

Mam jeden serwer dedykowany z poniższymi konfiguracjami

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

Teraz chcę wykonać dwie różne aplikacje Rails na jednym serwerze dedykowanym. Obie aplikacje są różne, ale używają wspólnej bazy danych.

Czy to możliwe? Jeśli tak-jak Mogę to zrobić – Czy Phusion z Apache to dobre podejście? Jeśli tak-jak skonfigurować dwie aplikacje z jednym serwerem Phusion Passenger?
Author: AMIC MING, 2011-09-20

3 answers

Opiszę jak uruchamiam wiele aplikacji Rails na jednym serwerze Linuksowym, używając Apache, Phusion Passenger i niektórych wersji Ruby. Masz wiele możliwości wyboru, ale to powinno pomóc Ci zacząć. Wiele z tych szczegółów pochodzi ze skryptu instalacyjnego

Najpierw zainstaluj pasażera Phusion.

> gem install passenger
Po drugie, zbuduj Apache 2 Passenger module. Powinieneś być w stanie wykonać następujący skrypt zainstalowany w pierwszym kroku.
> passenger-install-apache2-module

Ten skrypt skompiluje Moduł Apache 2 i wyjaśnij, jak skonfigurować Apache. Jeśli brakuje zależności, skrypt powinien zaoferować kilka pomocnych porad na temat ich instalacji.

Po Trzecie, Edytuj plik konfiguracyjny Apache. Muszę dodać coś takiego. (Po prostu użyj tego do referencji i nie martw się o to .RVM) skrypt uruchomiony w kroku drugim da ci coś, co możesz skopiować i wkleić.

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

Po czwarte, dodaj coś takiego do pliku konfiguracyjnego Apache dla każdego aplikacja , którą chcesz uruchomić.

<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>

Jeśli masz dwie aplikacje Rails współdzielące jedną bazę danych, to obie będą miały podobne informacje o połączeniu w config / database.yml

 13
Author: Jon M.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-20 20:40:38

Tak, to na pewno możliwe. Nigdy nie robiłem tego z Passenger + Apache, ale jestem pewien, że to dobry sposób. Robiłem to tylko z thin + nginx.

 1
Author: rm-rf,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-20 18:54:05

Passenger Phusion with Apache to solidne podejście. Fakt, że używają tej samej bazy danych nie powinien być problemem(tylko upewnij się, że nie nadepną na siebie w żaden sposób).

Ogólnie rzecz biorąc, po prostu ustaw wszystko jak zwykle, ale spójrz na wirtualne hosty oparte na nazwach Apache:

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

 0
Author: ebeland,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-20 19:10:20