Developer(s) | Zed A. Shaw |
---|---|
Stable release |
1.1.5 / May 22, 2008
|
Written in | Ruby |
Operating system | Cross-platform |
Type | Web server |
License | Ruby License |
Website | rubygems |
Mongrel is an open-source software HTTP library and web server written in Ruby by Zed Shaw. It is used to run Ruby web applications and presents a standard HTTP interface. This makes layering other servers in front of it possible using a web proxy, a load balancer, or a combination of both, instead of having to use more conventional methods employed to run scripts such as FastCGI or SCGI to communicate. This is made possible by integrating a custom high-performance HTTP request parser implemented using Ragel.
Mongrel was the first web server used by Twitter, and inspired Node.js according to Ryan Dahl.
Shaw subsequently created Mongrel2, an open-source "language agnostic" web server and the successor to Mongrel server.
One popular configuration was to run Apache HTTP Server 2.2 as a load balancer using mod_proxy_balancer in conjunction with several Mongrel instances. Each Mongrel instance would run on a separate TCP port, configured via the mongrel_cluster management utility. Until recently, Twitter was a notable instance of this configuration.
Mongrel was 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.