ART

 

.

Ο Mongrel είναι μια βιβλιοθήκη HTTP ανοικτού κώδικα και εξυπηρετητής ιστού για εφαρμογές Ιστού σε Ruby, που γράφτηκε από το Zed Shaw. Χρησιμοποιεί απλό HTTP, αντί για FastCGI ή SCGI, για να επικοινωνήσει με άλλους εξυπηρετητές που μπορεί να ανήκουν στα στρώματα μπροστά από αυτόν.

Είναι συνηθισμένο να ρυθμίζεται ο Apache 2.2 να εκτελείται για την εξισορρόπηση φόρτου (load balancing) με τη χρήση του mod_proxy_balancer μαζί με διάφορα στιγμιότυπα του Mongrel, κάθε ένα από τα οποία τρέχει σε διαφορετική πόρτα. Η ρύθμιση αυτή γίνεται πολύ εύκολα από το εργαλείο ρύθμισης mongrel_cluster. Ο Apache μπορεί να κατανείμει τα εισερχόμενα αιτήματα στις διαθέσιμες διεργασίες του Mongrel, και, με προσεκτικές ρυθμίσεις, ακόμα και να εξυπηρετήσει αιτήσεις για στατικό περιεχόμενο χωρίς να απευθύνεται στον Mongrel. Μέχρι πρόσφατα, το Twitter ήταν σημαντικό δείγμα αυτής της ρύθμισης.[1]

Ο 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.
Δείτε επίσης

Lighttpd
nginx
Pound

Παραπομπές

"Unicorn Power", Twitter Engineering Blog, March 30, 2010

Εξωτερικοί σύνδεσμοι

Επίσημη σελίδα
Σελίδα του Mongrel 2

Γλώσσα προγραμματισμού Ruby
Ολοκληρωμένα περιβάλλοντα ανάπτυξης

NetBeans RubyForge RadRails RubyMine ActiveState_Komodo

Υλοποιήσεις
Ruby MRI YARV JRuby IronRuby Rubinius XRuby MacRuby RubyJS HotRuby
Εφαρμογές
RubyGems Rake Interactive Ruby Shell Capistrano
Βιβλιοθήκες / Πλαίσια ανάπτυξης
Adhearsion Camping eRuby (RHTML) Hobo Merb Nitro RubyCocoa Ruby on Rails Ramaze Sinatra Padrino QtRuby
Λογισμικό εξυπηρετητή
Mongrel Phusion Passenger (mod_rails/mod_rack) WEBrick mod_ruby
Άλλα
Application Archives Document format Book Guides Ruby Central Hackety Hack RubyKaigi

Εγκυκλοπαίδεια Πληροφορικής

Κόσμος

Αλφαβητικός κατάλογος

Hellenica World - Scientific Library

Από τη ελληνική Βικιπαίδεια http://el.wikipedia.org . Όλα τα κείμενα είναι διαθέσιμα υπό την GNU Free Documentation License