Mongrel

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
Mongrel
Entwickler Zed A. Shaw
Aktuelle Version 1.1.5
(22. Mai 2008)
Betriebssystem plattformunabhängig
Kategorie Webserver
Lizenz Ruby license
Deutschsprachig nein
http://rubyforge.org/projects/mongrel/

Mongrel ist ein Webserver für Ruby-basierende Webapplikationen. Er verwendet hauptsächlich HTTP an Stelle von FastCGI oder SCGI um mit anderen (vorgelagerten) Servern zu kommunizieren. Es unterstützt zurzeit Ruby on Rails, Camping und das IOWA-Framework.

Mongrel wurde ursprünglich von Zed A. Shaw in den Programmiersprachen Ruby und C geschrieben.

Einsatzbereiche[Bearbeiten]

Live-System[Bearbeiten]

Eine häufig anzutreffende Konfiguration ist die Verwendung des Webservers Apache 2.2 als Loadbalancer unter Verwendung des Moduls mod_proxy_balancer in Verbindung mit mehreren Mongrel-Instanzen. Jede dieser Instanzen läuft dabei auf einer anderen Portadresse. Die Konfiguration lässt sich mit dem so genannten Mongrel-Cluster-Management Utility bewerkstelligen. Der Apache Webserver verteilt die Anfragen auf die einzelnen Mongrel-Instanzen und kann sogar gleichzeitig noch statische Inhalte ausliefern.

Anstatt des Apache ist auch der Einsatz anderer Webserver möglich. Dafür bieten sich nginx oder Lighttpd an. Als Loadbalancer ist zum Beispiel pound empfehlenswert oder aber eine Hardware basierende Lösung.

Ersatz für WEBrick[Bearbeiten]

Mongrel kann auch anstelle von WEBrick, dem Standard-Webserver von Ruby on Rails, Websites im Stand-Alone-Modus bereitstellen. Da es sich bei Mongrel jedoch um eine "single-threaded"-Applikation handelt, ist dies nur für Aufgaben mit wenig Serverbelastung (Entwicklung, Intranet) sinnvoll.

Betrieb[Bearbeiten]

Um Mongrel zu starten, muss man aus dem Basisverzeichnis der Rails-Applikation Folgendes aufrufen:

mongrel_rails start -p 80 -e production -d
-p setzt den Server auf Port 80.
-e sorgt für die Verwendung der "production"-Einstellungen.
-d lässt den Server als Dienst/Daemon im Hintergrund laufen.

Weblinks[Bearbeiten]