Jump to content

Mongrel (web server)

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Bender the Bot (talk | contribs) at 06:37, 30 November 2016 (top: clean up; http→https for YouTube using AWB). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Mongrel
Developer(s)Zed A. Shaw
Stable release
1.1.5 / May 22, 2008 (2008-05-22)
Repository
Written inRuby
Operating systemCross-platform
TypeWeb server
LicenseRuby License[1]
Websiterubygems.org/gems/mongrel

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.[2]

Shaw subsequently created Mongrel2, an open-source "language agnostic" web server and the successor to Mongrel server.

Deployment

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.[3]

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.[citation needed]

Deprecation

After the original author Zed Shaw left the Ruby on Rails-scene[4] the releases of Mongrel stopped. The current release 1.1.5 is no longer able to install in Ruby versions higher than 1.9.2 which is recommended for Rails 3, the fix is to use the much older 1.2.0-pre2[5][unreliable source?] release of Mongrel which isn't stable.

A new and maintained server, called Thin,[6] uses the Mongrel parser.

References

  • Swiftiply an alternative, event based wrapper around Mongrel that conforms to the Mongrel API.