19 avr 09
Mongrel et Nginx : déploiement de Ruby On Rails
Posté dans Tutoriaux | Tags :Debian, Linux, Mongrel, Nginx, Rails | 3 Commentaires »
Tout ce qui va suivre implique que vous connaissiez un minimum Nginx et que vous l’utilisiez déjà en frontal et non pas en proxy.
Pour avoir Ruby On Rails sur Linux (Debian ici) il va falloir installer un serveur web qui le gère. Mon choix s’est porté sur Mongrel car il est le plus rapide. Et devient encore plus rapide avec Nginx en frontal (on parle de plus de 60% plus rapide !).
Installation de Mongrel, Rails et Ruby :
gem install mongrel gem install rails apt-get install ruby
(si vous avez pas gem, un apt-get install gem devrait suffire !)
Ensuite allez à l’endroit où votre projet Rails se trouvera.
cd /var/www/rails rails nom_du_projet
Vous avez maintenant un projet Ruby On Rails dans /var/www/rails. Il faut maintenant configurer Nginx et Mongrel pour que vous puissiez y avoir accès.
Mongrel :
cd /var/www/rails/nom_du_projet mongrel_rails start -d -p 3000 --prefix=/nom_du_projet
Ici le serveur Mongrel démarre en Daemon (-d) sur le port 3000 (-p 3000) et avec le prefix de votre projet.
Maintenant si vous tapez xx.xx.xx.xx:3000/nom_du_projet (où xx.xx.xx.xx est l’ip du serveur) vous devrez avoir une belle page de Ruby On Rails vous disant que tout marche. Il va maintenant falloir configurer Nginx.
Nginx :
Dans votre Virtual Host ajoutez :
server { listen 80; server_name votre_nom_de_domaine.com; access_log /chemin_vers_les_logs_access.log; error_log /chemin_vers_les_logs_error.log; location / { root /var/www/rails/; index index.html; } location /nom_du_projet { proxy_pass http://localhost:3000; } }
Maintenant si vous allez sur votre nom de domaine (ou sous domaine) vous devriez avoir la même page de Ruby On Rails que précédemment. Il vous reste plus qu’à coder




Tu n’utilises pas mongrel_rails cluster::[start|stop|status] ? seulement un mongrel par app ? quoique oui ça doit suffire tant que ça ne grossit pas trop !
Tout à fait !
Bonjour,
Effectivement apache2 n’est pas la meilleure solution, j’utilise passenger avec ngnix et ça roule ! Mais au moment ou tu as publié cet article, il me semble que passenger pour ngnix n’existait pas encore.
Si tu as pu comparer les deux ça m’intéresse…