SlideShare a Scribd company logo
1 of 32
Download to read offline
Serving up your
 Rails app on a
Mongrel cluster




  Andy Lo-A-Foe
  andy@loafoe.nl
$ 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!
Cluster
 s/Apache/.../

Lighttpd(1.5.0)
    Nginx
    Pound
       ...

Share nothing
Apache config
RewriteCond %{DOCUMENT_ROOT}/system/maintenance.html -f
RewriteCond %{SCRIPT_FILENAME} !maintenance.html
RewriteRule ^.*$ /system/maintenance.html [L]

# Redirect all non-static requests to cluster
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
RewriteRule ^/(.*)$ 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

More Related Content

Similar to Serving Up Your Rails App On A Mongrel Cluster

Linux Nijmegen - Webserver (LAMP stack) opzetten met VirtualbBox & Vagrant
Linux Nijmegen - Webserver (LAMP stack) opzetten met VirtualbBox & VagrantLinux Nijmegen - Webserver (LAMP stack) opzetten met VirtualbBox & Vagrant
Linux Nijmegen - Webserver (LAMP stack) opzetten met VirtualbBox & VagrantPeter Martin
 
Vng realisatie IPv6 webinar 9 juni 2020
Vng realisatie IPv6 webinar 9 juni 2020 Vng realisatie IPv6 webinar 9 juni 2020
Vng realisatie IPv6 webinar 9 juni 2020 VNG Realisatie
 
PFZ Workshop - Automatiseren van functionele tests
PFZ Workshop - Automatiseren van functionele testsPFZ Workshop - Automatiseren van functionele tests
PFZ Workshop - Automatiseren van functionele testsRichard Tuin
 
Drupal Deployment demo
Drupal Deployment demoDrupal Deployment demo
Drupal Deployment demodropsolid
 
Presentatie Kor Dwarshuis Holland Open2008
Presentatie Kor Dwarshuis Holland Open2008Presentatie Kor Dwarshuis Holland Open2008
Presentatie Kor Dwarshuis Holland Open2008KorDwarshuis
 
Bart Lageweg - Ansible/Cobbler
Bart Lageweg - Ansible/CobblerBart Lageweg - Ansible/Cobbler
Bart Lageweg - Ansible/CobblerSplend
 
PenO1: les 2, user interfaces en web toepassingen
PenO1: les 2, user interfaces en web toepassingenPenO1: les 2, user interfaces en web toepassingen
PenO1: les 2, user interfaces en web toepassingenErik Duval
 
Ontwikkelen met Drupal - Een developer centric aanpak
Ontwikkelen met Drupal - Een developer centric aanpakOntwikkelen met Drupal - Een developer centric aanpak
Ontwikkelen met Drupal - Een developer centric aanpakHoppinger
 
internetbrowsers
internetbrowsersinternetbrowsers
internetbrowsersdavycrommen
 
Php Secure Application Development Robert Van Der Linde
Php Secure Application Development   Robert Van Der LindePhp Secure Application Development   Robert Van Der Linde
Php Secure Application Development Robert Van Der Lindephpseminar
 
Installatie apache, qgis server en lizmap web client
Installatie apache, qgis server en lizmap web clientInstallatie apache, qgis server en lizmap web client
Installatie apache, qgis server en lizmap web clientSandro Pibia
 
Webinar overstap van DevOps naar GitHub.pdf
Webinar overstap van DevOps naar GitHub.pdfWebinar overstap van DevOps naar GitHub.pdf
Webinar overstap van DevOps naar GitHub.pdfDelta-N
 
Mijn site beveiliging
Mijn site beveiligingMijn site beveiliging
Mijn site beveiligingMarko Heijnen
 
Techtalk2015 MOD_PHP vs PHP-FPM
Techtalk2015 MOD_PHP vs PHP-FPMTechtalk2015 MOD_PHP vs PHP-FPM
Techtalk2015 MOD_PHP vs PHP-FPMWebscale
 

Similar to Serving Up Your Rails App On A Mongrel Cluster (17)

Linux Nijmegen - Webserver (LAMP stack) opzetten met VirtualbBox & Vagrant
Linux Nijmegen - Webserver (LAMP stack) opzetten met VirtualbBox & VagrantLinux Nijmegen - Webserver (LAMP stack) opzetten met VirtualbBox & Vagrant
Linux Nijmegen - Webserver (LAMP stack) opzetten met VirtualbBox & Vagrant
 
Vng realisatie IPv6 webinar 9 juni 2020
Vng realisatie IPv6 webinar 9 juni 2020 Vng realisatie IPv6 webinar 9 juni 2020
Vng realisatie IPv6 webinar 9 juni 2020
 
PFZ Workshop - Automatiseren van functionele tests
PFZ Workshop - Automatiseren van functionele testsPFZ Workshop - Automatiseren van functionele tests
PFZ Workshop - Automatiseren van functionele tests
 
Drupal Deployment demo
Drupal Deployment demoDrupal Deployment demo
Drupal Deployment demo
 
Presentatie Kor Dwarshuis Holland Open2008
Presentatie Kor Dwarshuis Holland Open2008Presentatie Kor Dwarshuis Holland Open2008
Presentatie Kor Dwarshuis Holland Open2008
 
Het Internet
Het InternetHet Internet
Het Internet
 
Het Internet
Het InternetHet Internet
Het Internet
 
Bart Lageweg - Ansible/Cobbler
Bart Lageweg - Ansible/CobblerBart Lageweg - Ansible/Cobbler
Bart Lageweg - Ansible/Cobbler
 
PenO1: les 2, user interfaces en web toepassingen
PenO1: les 2, user interfaces en web toepassingenPenO1: les 2, user interfaces en web toepassingen
PenO1: les 2, user interfaces en web toepassingen
 
Ontwikkelen met Drupal - Een developer centric aanpak
Ontwikkelen met Drupal - Een developer centric aanpakOntwikkelen met Drupal - Een developer centric aanpak
Ontwikkelen met Drupal - Een developer centric aanpak
 
internetbrowsers
internetbrowsersinternetbrowsers
internetbrowsers
 
Php Secure Application Development Robert Van Der Linde
Php Secure Application Development   Robert Van Der LindePhp Secure Application Development   Robert Van Der Linde
Php Secure Application Development Robert Van Der Linde
 
Installatie apache, qgis server en lizmap web client
Installatie apache, qgis server en lizmap web clientInstallatie apache, qgis server en lizmap web client
Installatie apache, qgis server en lizmap web client
 
Vagrant + ansible vs docker
Vagrant + ansible vs dockerVagrant + ansible vs docker
Vagrant + ansible vs docker
 
Webinar overstap van DevOps naar GitHub.pdf
Webinar overstap van DevOps naar GitHub.pdfWebinar overstap van DevOps naar GitHub.pdf
Webinar overstap van DevOps naar GitHub.pdf
 
Mijn site beveiliging
Mijn site beveiligingMijn site beveiliging
Mijn site beveiliging
 
Techtalk2015 MOD_PHP vs PHP-FPM
Techtalk2015 MOD_PHP vs PHP-FPMTechtalk2015 MOD_PHP vs PHP-FPM
Techtalk2015 MOD_PHP vs PHP-FPM
 

Serving Up Your Rails App On A Mongrel Cluster