Serving Up Your Rails App On A Mongrel Cluster
-
Upload
robbert -
Category
Technology
-
view
2.282 -
download
1
description
Transcript of Serving Up Your Rails App On A Mongrel Cluster
$ whoami
$ whoami
• Brood: Web ontwikkelaar / Linux
$ whoami
• Brood: Web ontwikkelaar / Linux
• Deed: PHP / Java
$ whoami
• Brood: Web ontwikkelaar / Linux
• Deed: PHP / Java
• Doet: Rails / Architectuur / etc..
$ whoami
• Brood: Web ontwikkelaar / Linux
• Deed: PHP / Java
• Doet: Rails / Architectuur / etc..
• Bij: IndependentIP
Wat is Mongrel?
Wat is Mongrel?
• http://mongrel.rubyforge.org
Wat is Mongrel?
• http://mongrel.rubyforge.org• Mongrel is a fast HTTP library and
server for Ruby that is intended for hosting Ruby web applications of any kind using plain HTTP rather than FastCGI or SCGI.
Wat is Mongrel?
• http://mongrel.rubyforge.org• Mongrel is a fast HTTP library and
server for Ruby that is intended for hosting Ruby web applications of any kind using plain HTTP rather than FastCGI or SCGI.
• Ontwikkelt door Zed Shaw (http://www.zedshaw.com) en anderen..
Waarom Mongrel? (IMHO)
Waarom Mongrel? (IMHO)
• Snelheid? nope
Waarom Mongrel? (IMHO)
• Snelheid? nope
• FastCGI zuigt? nope
Waarom Mongrel? (IMHO)
• Snelheid? nope
• FastCGI zuigt? nope
• Koelheid? yep!
Waarom Mongrel? (IMHO)
• Snelheid? nope
• FastCGI zuigt? nope
• Koelheid? yep!
• Eenvoudig? yep!
Waarom Mongrel? (IMHO)
• Snelheid? nope
• FastCGI zuigt? nope
• Koelheid? yep!
• Eenvoudig? yep!
• Monitoring? yep!
Installatie
Installatie
• Uitgebreide documentatie op het web: http://mongrel.rubyforge.org
Installatie
• Uitgebreide documentatie op het web: http://mongrel.rubyforge.org
• $ sudo gem install mongrel mongrel_cluster --include-dependencies
Installatie
• Uitgebreide documentatie op het web: http://mongrel.rubyforge.org
• $ sudo gem install mongrel mongrel_cluster --include-dependencies
• $ sudo gem install fastthread
Installatie
• Uitgebreide documentatie op het web: http://mongrel.rubyforge.org
• $ sudo gem install mongrel mongrel_cluster --include-dependencies
• $ sudo gem install fastthread
• $ cd rails_app_root
Installatie
• Uitgebreide documentatie op het web: http://mongrel.rubyforge.org
• $ sudo gem install mongrel mongrel_cluster --include-dependencies
• $ sudo gem install fastthread
• $ cd rails_app_root
• $ mongrel_rails start
Installatie
• Uitgebreide documentatie op het web: http://mongrel.rubyforge.org
• $ sudo gem install mongrel mongrel_cluster --include-dependencies
• $ sudo gem install fastthread
• $ cd rails_app_root
• $ mongrel_rails start
• Profit!
Clusters/Apache/.../
Lighttpd(1.5.0)NginxPound
...
Share nothing
Apache configRewriteCond %{DOCUMENT_ROOT}/system/maintenance.html -fRewriteCond %{SCRIPT_FILENAME} !maintenance.htmlRewriteRule ^.*$ /system/maintenance.html [L]
# Redirect all non-static requests to clusterRewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-fRewriteRule ^/(.*)$ balancer://filmpjes_cluster% {REQUEST_URI} [P,QSA,L]
<Proxy balancer://filmpjes_cluster> BalancerMember http://127.0.0.1:9000 BalancerMember http://127.0.0.1:9001 BalancerMember http://127.0.0.1:9002 BalancerMember http://127.0.0.1:9003 ....... </Proxy>
Performance
Performance
• Statische content door Apache (of lighty..)
Performance
• Statische content door Apache (of lighty..)
• Dynamische content door cluster
Performance
• Statische content door Apache (of lighty..)
• Dynamische content door cluster
• Cache, cache, cache
Caching
• Page / Action / Fragment
• /dyn/140x104/11126/2.jpg
• mapping
• controller rendered en schrijft resultaat weg in public/dyn/140x104/111126/2.jpg
• serveert via send_file :disposition => true
• volgende request via Apache
Monitoring
• MONIT!!
• http://www.tildeslash.com/monit/
Vragen?
• Meer info op http://www.railsguru.com