· 3 min read
Die Rails-Entwicklung mit Mongrel beschleunigen
Lösung
Eine ausgezeichnete Alternative zu WEBrick ist Mongrel. Mongrel ist deutlich schneller als WEBrick und wesentlich einfacher zu installieren als die LightTPD/FastCGI-Kombination. Sie benötigen eine funktionierende Build-Umgebung, um Mongrel unter Linux oder Mac OS X installieren zu können. Windows-Nutzer erhalten ein vorkompiliertes Gem. Nutzer Debian-basierter Linux-Distributionen müssen die ruby-dev- und build-essential-Pakete installiert haben, und Mac OS X-Nutzer müssen Apples XCode-Tools installiert haben. Sobald alle Voraussetzungen erfüllt sind, installieren Sie Mongrel mit Hilfe von RubyGems:
$ sudo gem install mongrel
Dann starten Sie Mongrel im Stammverzeichnis der Anwendung als Daemon (als Hintergrundprozess):
$ mongrel_rails start -d
Ihre Anwendung ist nun an Port 3000 verfügbar, genau wie bei der WEBrick-Standardeinstellung (http://localhost:3000). Um den Server anzuhalten, geben Sie Folgendes ein:
$ mongrel_rails stop
Diskussion
Mongrel ist ein schneller Webserver. Er wurde in Ruby geschrieben (mit einigen C-Erweiterungen). Er ist einfach zu installieren und kann als einfacher Entwicklungsserver dienen. Er kann für größere Produktionsanwendungen aber auch hinter einem Load-Balancer geclustert werden. Mongrel kann auch mit anderen Ruby-Frameworks, wie etwa Og+Nitro und Camping, verwendet werden, ist aber für den Einsatz von Rails-Anwendungen besonders populär. Es ist sehr wahrscheinlich, das script/server in naher Zukunft neben WEBrick und LightTPD auch Mongrel unterstützen wird.
Die Lösung zeigt Mongrel als Daemon-Prozess. Sie können ihn auch im Vordergrund ausführen, erhalten aber nicht die gleichen nützlichen Ausgaben wie bei WEBrick. Um diese Informationen zu erhalten, geben Sie den folgenden Befehl ein:
tail -f log/development.log
Die Installation des Mongrel-Plugins fügt den Befehl mongrel_rails in Ihren Pfad ein. Für eine Liste der verfügbaren Optionen geben Sie nur den Befehl ein:
$ mongrel_rails
Usage: mongrel_rails <command> [options]
Available commands are:
- restart
- start
- stop
Each command takes -h as an option to get help.
Mongrel besitzt seinen eigenen Satz von Plugins. Ihre Ausgabe kann anders aussehen, je nachdem, welche Mongrel-Plugins installiert wurden (etwa mongrel_status und mongrel_cluster). Mit dem grundlegenden Mongrel-Gem verfügen Sie über start, stop und restart.
Eine vollständige Liste der Optionen des start-Befehls erhalten Sie mit -h:
$ mongrel_rails start -h
Usage: mongrel_rails <command> [options]
-e, --environment ENV Rails environment to run as
-d, --daemonize Whether to run in the background or
not
-p, --port PORT Which port to bind to
-a, --address ADDR Address to bind to
-l, --log FILE Where to write log messages
-P, --pid FILE Where to write the PID
-n, --num-procs INT Number of processors active before
clients denied
-t, --timeout TIME Timeout all requests after 100th
seconds time
-m, --mime PATH A YAML file that lists additional
MIME types
-c, --chdir PATH Change to dir before starting
(will be expanded) -r, --root PATH
Set the document root (default
'public')
-B, --debug Enable debugging mode
-C, --config PATH Use a config file
-S, --script PATH Load the given file as an extra
config script.
-G, --generate CONFIG Generate a config file for -C
--user USER User to run as
--group GROUP Group to run as
-h, --help Show this message
--version Show version
Wenn Sie mit Windows arbeiten, können Sie Mongrel einfach als Dienst konfigurieren:
$ mongrel_rails_service install -n blog -r c:datablog
-p 4000 -e production
Sie starten den Dienst dann mit:
$ mongrel_rails_service start -n blog
Sie können den Dienst sogar über die Verwaltung in der Systemsteuerung pflegen.
Dieses Rezept stammt aus dem Rails Kochbuch, veröffentlicht beim O’Reilly Verlag