Die Rails-Entwicklung mit Mongrel beschleunigen

Sie möchten an Ihrem Rails-Projekt im Entwicklungsmodus arbeiten und etwas Schnelleres verwenden als den fest eingebauten Webserver WEBrick.

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

Professional Ruby Series, CD-ROM Mongrel, Routing, RESTful, Plugins, and Rubyisms

Rails Routing focuses on the extensive and powerful routing subsystem in Rails–the suite of techniques for manipulating the process by which incoming requests to a Rails application can be matched with, or mapped to, specific actions. Rails Refactoring to Resources. If you’re new to Representational State Transfer (REST), this Short Cut will help you decide which parts of the REST paradigm you want to introduce to your application. If you’re a developer with more RESTful experience, it will introduce you to some refactorings that will give your application a cleaner, leaner code base. Rubyisms in Rails is an examination of how the style of Ruby informs the design of Rails.

In particular, it looks at a few specific examples of how Rails‘ internal code is implemented in Ruby to instruct about Ruby’s design principles. Rails Plugins teaches you what plugins are, how they work, and why they’re useful. Discover how to find and install plugins using the provided script, then explore the world of plugin development, including common plugin idioms, testing, and version control. Finally, learn how to share your own plugins. Mongrel introduces the fast, versatile Ruby Web server.If you build or manage Web applications, this will be a useful reference as you set up and use Mongrel in your development and production environments.

Also teaches how to extend Mongrel.

  • Taschenbuch: 192 Seiten
  • Verlag: (2007-08-05 )
  • Preis: 25.59 €
  • Sprache: english
  • ISBN-10: 0132417995
  • Autor(en): Dave Thomas, David A. Black
  • kaufen