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
Basisdaten

Entwickler Zed A. Shaw
Aktuelle Version 1.1.5[1]
(22. Mai 2008)
Betriebssystem plattformunabhängig
Programmiersprache Ruby
Kategorie Webserver
Lizenz Ruby license
deutschsprachig nein
https://rubygems.org/gems/mongrel

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 sogenannten 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

Einzelnachweise Bearbeiten

  1. github.com.