NAME
mongrel_rails - Ruby Web Server
SYNOPSIS
mongrel_rails <command> [options]
DESCRIPTION
Mongrel is a fast HTTP library and server for Ruby that is intended for
hosting Ruby web applications of any kind using plain HTTP rather than
FastCGI or SCGI. It is framework agnostic and already supports Ruby On
Rails, Og+Nitro, Camping, and IOWA frameworks.
Mongrel turns out to be really nice for development since it serves
files much faster than WEBrick. For example, to use it in development
with Ruby on Rails is easy as this:
$ mongrel_rails start
Mongrel is a self-documenting program by giving you an extensive help
listing for each command. If you think that this manual page is
outdated, simply running
mongrel_rails start -h
will print out each possible option and what it does.
These options are also used in the -C config_file option to set them
without using the command line. The name used in the config file is
slightly different since it’s a YAML file.
Mongrel has a -G (generate) feature that will take any command line
options you give it, generate the YAML file to replicate those options,
and then exit. For example, you could make a config file like this:
mongrel_rails start -G mongrel_8080.yml -e production -p 8080
And it’ll write all the options possible to mongrel_8080.yml, but with
your specific changes for environment (-e production) and port (-p
8080). When you run a configuration file with -C, don’t pass other
options. Rather than have complex rules about whether a configuration
file or command line option wins, mongrel_rails just uses configuration
file and defaults, or command line options and defaults. Basically
don’t mix, it won’t work.
COMMANDS
The following commands are supported by mongrel:
start Starts the server.
stop Stops the server. Mongrel is very conservative
when it shuts down, so it will wait up to 60 seconds for threads to
exit before it finally exits gracefully.
stop --force [--wait n] Stops the server. This sends mongrel a kill -9
and then you must delete the .pid file. If the wait parameter is
specified, mongrel will wait n seconds before it sends the kill signal.
restart Restarts the server.
OPTIONS
Mongrel is extensible configurable, and it has the following
configuration options (the name to use in configuration file is in
parenthesis after the option name):
-e, --environment ENV (:environment) Configures your Rails
environment to what you need.
* Default: development
-d, --daemonize (:daemon) If given (no options) then
Mongrel will run in the background.
* Default: false
-p, --port PORT (:port) Port to bind to when listening
for connections.
* Default: 3000
-a, --address ADDR (:host) Address to bind to when
listening for connections.
* Default: 0.0.0.0 (every
interface)
-l, --log PATH (:log_file) Where to dump log messages in
daemon mode - use an absolute path.
* Default: $PWD/log/mongrel.log
-P, --pid PATH (:pid_file) Where to write the PID file so
start and stop commands know the Process ID - use absolute paths.
* Default: $PWD/log/mongrel.pid
-n,--num-procs PROCS (:num_processors) Maximum number of concurrent
processing threads before Mongrel starts denying connections and trying
to kill old threads.
* Default: 1024
-t, --timeout SEC (:timeout) Time to pause between accepting
clients. Used as a throttle mechanism.
* Default: 0
-m, --mime PATH (:mime_map) A YAML file that lists
additional MIME types.
* Default: not set.
-c, --chdir PATH (:cwd) Directory to change to prior to
starting Mongrel.
* Default: . (current
directory)
-r, --root PATH (:docroot) Document root where Mongrel
should serve files from. If you are putting Mongrel under a different
base URI, and you want it to serve files out of a different directory
then you need to set this.
* Default: public
-B, --debug (:debug) Turns on a debugging mode which
traces objects, threads, files request parameters, and logs accesses
writing them to log/mongrel_debug. This option makes Mongrel very slow.
* Default: false
-C, --config PATH (NONE) Specifies a configuration YAML
file that sets options - use absolute paths.
* Default: no default
-S, --script PATH (:config_script) A special Ruby file that is run
after Rails is configured to give you the ability to change the
configuration with Ruby. This would be where you can load customer
Mongrel handlers, extra libraries, or setup additional Ruby code. This
option is fairly advanced so use with caution.
* Default: not set
-G, --generate PATH (NONE) Takes whatever options set for
Mongrel, and the current defaults, and then writes them to a YAML file
suitable for use with the -C option.
* Default: not set
--prefix URI A URI to mount your Rails
application at rather than the default /. This URI is stripped off all
requests by Rails (not Mongrel) so it cannot end in /.
* Default: not set
--user USER Must have --group too. The user
to change to right after creating the listening socket. Use this if you
have to bind Mongrel to a low port like port 80, but don’t want Mongrel
to run as root.
* Default: not set
--group GROUP Must have --user too. The group
to change to right after creating the listening socket.
* Default: not set
-h, --help Show help message
--version Show mongrel version
Installation of plugins packages for mongrel like mongrel-cluster
allows one to use additional commands, such as cluster::configure.
SEE ALSO
pen(1), mongrel-cluster(1)
AUTHOR
Mongrel (http://mongrel.rubyforge.org/) was written by Zed Shaw. This
manual page was written for the Debian system by Filipe Lautert
<filipe@icewall.org>. It might be used and redistributed under the
same terms as the program itself.