Mongrel (web server)
|
|
The topic of this article may not meet Wikipedia's general notability guideline. Please help to establish notability by adding reliable, secondary sources about the topic. If notability cannot be established, the article is likely to be merged, redirected, or deleted. (February 2011) |
| This article relies on references to primary sources or sources affiliated with the subject, rather than references from independent authors and third-party publications. Please add citations from reliable sources. (February 2011) |
| Developer(s) | Zed A. Shaw |
|---|---|
| Stable release | 1.1.5 / May 22, 2008 |
| Operating system | Cross-platform |
| Type | Web server |
| License | Ruby License[1] |
| Website | rubygems.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.
Contents |
[edit] Deployment
One popular configuration is to run Apache HTTP Server 2.2 as a load balancer using mod_proxy_balancer in conjunction with several Mongrel instances, with each Mongrel instance running on a separate TCP port. This can be configured easily using the mongrel_cluster management utility. Apache can divide the incoming HTTP requests among the available Mongrel processes, and, with careful configuration, can even serve static content itself without having to delegate to Mongrel. Until recently, Twitter was a notable instance of this configuration.[3]
For those who wish to avoid Apache altogether, it is possible to deploy a Mongrel cluster with an alternative web server, such as nginx, lighttpd, Hiawatha or Cherokee, and a load balancer of some variety such as Pound or a hardware-based solution.
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[citation needed].
[edit] Future in the Rails world
After the original author Zed Shaw left the Ruby on Rails-scene[4] the releases of Mongrel stopped. The current release 1.2.5 is no longer able to install in Ruby versions higher than 1.9.2 which is recommendable for Rails3[5], the fix is to use the much older 1.2.0-pre2[6] release of Mongrel which isn't stable.
Mongrel however lives on in a new project called Thin[7] which is a maintained project that uses the Mongrel parser.
[edit] See also
[edit] References
- ^ http://github.com/fauna/mongrel/blob/master/LICENSE
- ^ http://www.youtube.com/watch?v=SAc0vQCC6UQ&feature=player_embedded
- ^ "Unicorn Power", Twitter Engineering Blog, March 30, 2010
- ^ http://techcrunch.com/2008/01/01/zed-shaw-puts-the-smack-down-on-the-rails-community/
- ^ http://rubyonrails.org/download
- ^ http://stackoverflow.com/a/4419008
- ^ http://code.macournoyer.com/thin/
[edit] External links
- Swiftiply an alternative, event based wrapper around Mongrel that conforms to the Mongrel API.
|
|||||||||||||||||||||||