Развертывание Ruby on Rails с Apache и Mongrel - PullRequest
0 голосов
/ 12 февраля 2009

Я довольно новичок в ruby ​​по рельсам и веб-разработке. Вот мои настройки, по которым я следовал по этой ссылке http://tonyrose023.blogspot.com/2007/01/multiple-rails-apps-with-mongrel.html Я запускаю несколько приложений rails на Apache2 с кластерами Mongrel.

http://services.abc.edu/app1 http://services.abc.edu/app2 http://services.abc.edu/app3

Вот так выглядит мой файл «виртуального хоста» (/etc/apache2/sites-availabe/services.abc.edu)

--------------
<Proxy balancer://app1> 
BalancerMember http://services.abc.edu:8000 
BalancerMember http://services.abc.edu:8001 
BalancerMember http://services.abc.edu:8002
Order deny,allow
Deny from all
Allow from all
</Proxy>

<Proxy balancer://app2>
BalancerMember http://services.abc.edu:8004
BalancerMember http://services.abc.edu:8005
Order deny,allow
Deny from all
Allow from all
</Proxy>

<Proxy balancer://app3>
BalancerMember http://services.abc.edu:8006
BalancerMember http://services.abc.edu:8007
Order deny,allow
Deny from all
Allow from all
</Proxy>



<VirtualHost *:80>
    ServerName services.abc.edu
    DocumentRoot /home/joe/projects/app1/public


<Directory "/home/joe/projects/app1/public"> 
Options FollowSymLinks 
AllowOverride None 
Order allow,deny 
Allow from all 
</Directory> 

<Directory "/home/joe/projects/app2/public"> 
Options FollowSymLinks 
AllowOverride None 
Order allow,deny 
Allow from all 
</Directory> 

<Directory "/home/joe/projects/app3/public">
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>

RewriteEngine On 


# Rewrite index to check for static 
#RewriteRule ^/$ /index.html [QSA] 
# Rewrite to check for Rails cached page 
RewriteRule ^([^.]+)$ $1.html [QSA] 
# Redirect all non-static requests to cluster 
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f 
#RewriteRule ^/(.*)$ balancer://mongrel_cluster%{REQUEST_URI} [P,QSA,L] 

RewriteRule ^/app1(.*)$ balancer://app1%{REQUEST_URI} [P,QSA,L]
RewriteRule ^/app2(.*)$ balancer://app2%{REQUEST_URI} [P,QSA,L]
RewriteRule ^/app3(.*)$ balancer://app3%{REQUEST_URI} [P,QSA,L]

</VirtualHost>
-----------------------------------------

Мои вопросы

1) Если кто-то может прокомментировать мои настройки и предложить какие-либо предложения, было бы здорово.

2) Как видите, у меня есть один DocumentRoot, хотя сейчас все 3 приложения работают, поскольку они используют одни и те же изображения, но я думаю, что в будущем мне нужно иметь DocumentRoot для каждого приложения

3) Мне нужно, чтобы приложения работали безопасно, поэтому мне нужно, чтобы это работало с SSL (порт 443), и мне нужна помощь с настройкой работы с SSL. Любые указатели будут полезны, так как я никогда не устанавливал сертификат. Я создал CSR и ключ, и у меня есть сертификат. Я изучаю следующие шаги.

Спасибо!

1 Ответ

5 голосов
/ 12 февраля 2009

Я бы посоветовал вам заглянуть в Пассажир . Его очень легко настроить, он позволяет приложениям Rails совместно использовать память, снимает бремя управления кластером полукровок и практически не требует настройки. Все, что вам нужно, это специальный файл config.ru с RackUp config и DocumentRoot, указывающим на RAILS_ROOT / публичный набор в Apache.

Проблема с запуском нескольких приложений в mongrel заключается в том, что вам необходим отдельный экземпляр mongrel для каждого из них.

Что касается вашего вопроса по SSL, я обнаружил, что очень просто настроить SSL для некоторых частей моих сайтов в Nginx . Я не помню, как это сделать в Apache, но, скорее всего, есть хорошие инструкции .

...