· 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

Back to Blog