Je viens de terminer mon install alors pour ceux que ça interesse
voilà comment j’ai fait:
J’ai choisi Debian Etch parceque ça vient avec apache2.2.3 et le
module load_balancer donc pas besoin de recompiler apache à la main.
#Tout d’abord, installer apache2 et ruby (facile pour les gens de
cette liste
apt-get install apache2 ruby ruby1.8-dev et compagnie
#ensuite installer gem, bon j’imagine que vous savez comment faire
aussi (télécharger le décompresser et faites ‘ruby setup.rb’).
#ensuite en tant que root faire:
gem install daemons gem_plugin mongrel mongrel_cluster
–include-dependencies
#placez-vous dans la racine de votre application rails et taper:
mongrel_rails cluster::configure -e production -p 8000 -a
monsite.com -N 3 -c /chemin/vers/votre/appli/rails
#voilà, maintenant tapez:
mongrel_rails cluster::start
#et voilà! ouvrez votre monsite.com:8000 et ça devrait marcher.
#pour automatiser le process faites:
/usr/sbin/update-rc.d mongrel_cluster defaults
#ensuite vous pourrez démarrer votre appli en faisant:
/etc/init.d/mongrel_cluster start nom_de_votre_appli
#maintenant il y a la partie apache moins sympa:
#aller dans /etc/apache2/mods-enabled et là, tapez ces commandes:
ln -s /etc/apache2/mods-available/deflate.load deflate.load
ln -s /etc/apache2/mods-available/proxy_balancer.load
proxy_balancer.load
#et faite de même avec proxy_balancer.load , rewrite.load ,
proxy.conf , mem_cache.conf , proxy_http.load , deflate.load,
mem_cache.load et proxy.load
#Il y a surement une commande apache pour loader les modules mais en
tout cas ça marche comme ça
#Voilà maintenant il n’y a plus cas configurer les Virtual hosts.
#Placez-vous dans /etc/apache2/sites-availble
#Là, créer monsite.conf et dedans écriver:
NameVirtualHost monsite.com:80
<VirtualHost :80>
ServerName monsite.com
ServerAlias www.monsite.com
DocumentRoot /chemin/vers/votre/appli/rails/public/
Include /etc/apache2/conf.d/monsite.common
ErrorLog /chemin/vers/votre/appli/rails/log/monsite_errors_log
CustomLog /chemin/vers/votre/appli/rails/log/monsite_log combined
###fin de monsite.conf###
##placez-vous dans /etc/apache2/sites-enabled et faites:
ln -s /etc/apache2/sites-available/monsite.conf monsite.conf
ensuite dans /etc/apache2/conf.d/monsite.common
<Directory “/chemin/vers/votre/appli/rails/public/”>
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
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]
Deflate
AddOutputFilterByType DEFLATE text/html text/plain text/xml
application/xml application/xhtml+xml text/javascript text/css
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
#important!! apache marche mieux que mongrel sur tout ce qui est
static donc on retire images, css et autres javascripts.
ProxyPass /images !
ProxyPass /stylesheets !
ProxyPass /javascripts !
#vous pouvez en ajoutez d’autres si vous en avez of course
Alias /images /chemin/vers/votre/appli/rails/public/images
Alias /stylesheets /chemin/vers/votre/appli/rails/stylesheets
Alias /stylesheets /chemin/vers/votre/appli/rails/javascripts
##fin de monsite.common###
Maintenant, créer ce fichier
/etc/apache2/conf.d/testapp.proxy_cluster.conf
<Proxy balancer://mongrel_cluster>
BalancerMember http://monsite.com:8000
BalancerMember http://monsite.com:8001
BalancerMember http://monsite.com:8002
Voilà c’est tout, vous devriez pouvoir vous connecter à votre site
monsite.com et apache se charge de redistribuer automatiquement sur
mongrel.
si vous avez des suggestions ou autres n’hésitez pas.
Pat