Mongrel
Ο Mongrel είναι μια βιβλιοθήκη HTTP ανοικτού κώδικα και εξυπηρετητής ιστού για εφαρμογές Ιστού σε Ruby, που γράφτηκε από το Zed Shaw.
Χρησιμοποιεί απλό HTTP, αντί για FastCGI ή SCGI, για να επικοινωνήσει με άλλους εξυπηρετητές που μπορεί να ανήκουν στα στρώματα μπροστά από αυτόν.
Είναι συνηθισμένο να ρυθμίζεται ο Apache 2.2 να εκτελείται για την εξισορρόπηση φόρτου (load balancing) με τη χρήση του mod_proxy_balancer μαζί με διάφορα στιγμιότυπα του Mongrel, κάθε ένα από τα οποία τρέχει σε διαφορετική πόρτα.
Η ρύθμιση αυτή γίνεται πολύ εύκολα από το εργαλείο ρύθμισης mongrel_cluster.
Ο Apache μπορεί να κατανείμει τα εισερχόμενα αιτήματα στις διαθέσιμες διεργασίες του Mongrel, και, με προσεκτικές ρυθμίσεις, ακόμα και να εξυπηρετήσει αιτήσεις για στατικό περιεχόμενο χωρίς να απευθύνεται στον Mongrel.
Μέχρι πρόσφατα, το Twitter ήταν σημαντικό δείγμα αυτής της ρύθμισης.
Ο Apache μπορεί να παραλειφθεί και να εγκατασταθεί μια συστοιχία του Mongrel (Mongrel cluster) με κάποιον εναλλακτικό εξυπηρετητή ιστού όπως ο nginx ή ο lighttpd, και έναν εξισορροπητή φορτίου (load balancer) όπως ο Pound ή κάποια λύση βασισμένη σε υλικό.
Αυτοτελής λειτουργία
Ο Mongrel μπορεί να εκτελεί σελίδες βασισμένες σε Ruby on Rails χωρίς να απαιτούνται άλλοι εξυπηρετητές ιστού, αν και επειδή είναι υλοποιημένος σαν εφαρμογή με ένα μοναδικό νήμα δε μπορεί να σηκώσει μεγάλα φορτία.
Αρκεί η παρακάτω εντολή στον βασικό κατάλογο μιας εφαρμογής σε Rails:
mongrel_rails start -p 80 -e production -d
Η επιλογή -p ορίζει την πόρτα 80 (την προκαθορισμένη πόρτα εξυπηρετητών ιστού, που μπορεί να απαιτεί την παύση άλλων εξυπηρετητών ιστού που εκτελούνται και την εξουσιοδότηση από τον υπερχρήστη/διαχειριστή), η -e χρησιμοποιεί τις ρυθμίσεις παραγωγής και η -d θέτει την εκτέλεση του προγράμματος στο παρασκήνιο σαν δαίμονα (daemon).
Για περισσότερες πληροφορίες, δείτε τη σελίδα του Mongrel.
