Mongrel (web server)

From Wikipedia, the free encyclopedia

Jump to: navigation, search
Mongrel
Developed by Zed A. Shaw
Latest release 1.1.5 / May 22, 2008
Operating system Cross-platform
Type Web server
License GPL
Website http://mongrel.rubyforge.org

Mongrel is an open-source HTTP library and web server for Ruby web applications written by Zed A. Shaw. A distinguishing feature of Mongrel is that it uses plain HTTP, rather than FastCGI or SCGI, to communicate with other servers which may be layered in front of it.

It is arguably faster and more stable than WEBrick[citation needed], and easier to set up than Apache. One popular configuration is to run Apache 2.2 as a load balancer using mod_proxy_balancer in conjunction with several Mongrel instances, with each Mongrel instance running on a separate port. This is something that can be configured very easily using the mongrel_cluster management utility. Apache can divide the incoming requests among the available Mongrel processes, and, with careful configuration, can even serve static content itself without having to delegate to Mongrel.

For those who wish to avoid Apache altogether, it is possible to deploy a Mongrel cluster with an alternative web server, such as nginx or lighttpd, and a load balancer of some variety such as Pound or a hardware-based solution.

[edit] Stand-alone capability

Mongrel is capable of serving Ruby on Rails powered sites without requiring any other web servers, though as a single-threaded application this configuration is unsuitable for all but light loads. From the base directory of any typical Rails application, simply run:

mongrel_rails start -p 80 -e production -d

The -p sets the port to 80 (the default web server port, which requires stopping any existing web servers and may require root/superuser permissions), -e specifies to use the production settings and -d specifies the program to run in the background as a daemon. More information is available on the Mongrel site.

[edit] See also

[edit] External links

Personal tools
Languages