2009-02-11 7 views
0

Je suis relativement novice en matière de rubis sur rails et développement web. Voici ma configuration que j'ai suivie à partir de ce lien http://tonyrose023.blogspot.com/2007/01/multiple-rails-apps-with-mongrel.html Je lance des applications de rails multiples sur Apache2 avec des clusters Mongrel.Déploiement de Ruby on Rails avec Apache et Mongrel

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

C'est ce que mon fichier 'hôte virtuel' (/etc/apache2/sites-availabe/services.abc.edu) ressemble

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

Mes questions sont

1) Si quelqu'un peut commenter ma configuration et offrir des suggestions, ce serait génial.

2) Comme vous pouvez le voir, j'ai un DocumentRoot, bien qu'en ce moment tous les 3 applications fonctionnent car ils utilisent les mêmes images, mais je pense que dans l'avenir je dois avoir DocumentRoot pour chaque application

3) Je dois pour que les applications fonctionnent en toute sécurité, je dois donc utiliser SSL (port 443) et j'ai besoin d'aide pour le faire fonctionner avec SSL. Tous les pointeurs seraient utiles puisque je n'ai jamais installé un cert. J'ai créé le csr et la clé et j'ai le cert avec moi. Je fais des recherches sur quelles sont les prochaines étapes.

Merci!

+0

Oh mec, tout le formatage s'est foutu !! –

+0

Est-ce la raison pour laquelle vous avez trois lignes avec les mêmes options? :) –

+0

quel est le meilleur moyen de coller le fichier hôte virtuel sans perdre le format? –

Répondre

5

Je vous conseille de regarder dans Passenger. Il est très facile à configurer, permet aux applications Rails de partager de la mémoire, supprime le fardeau de la gestion d'un groupe de métis et ne nécessite pratiquement aucune configuration. Tout ce dont vous avez besoin est un fichier 'config.ru' spécial avec un RackUp config et un DocumentRoot pointant vers RAILS_ROOT/public dans Apache.

Le problème avec l'exécution de plusieurs applications dans mongrel est que vous avez besoin d'une instance de mongrel séparée pour chacun d'eux.

En ce qui concerne votre question SSL, j'ai trouvé très facile de configurer SSL pour certaines parties de mes sites au Nginx. Je ne me souviens pas comment le faire dans Apache, mais il y a probablement des good howtos out there.

+0

+100 pour Passsenger ... il simplifie énormément le processus de déploiement. J'ai déplacé 5 systèmes de production Rails pour utiliser Passenger plutôt que Mongrel et c'est génial. –

+0

Merci pour votre réponse. J'ai un projet important qui sera mis en place dans les prochaines semaines et je ne veux pas gâcher cette configuration car elle fonctionne à peu près maintenant. Mais je voudrais regarder dans Passenger après mon projet. Merci! –