mirror of
https://github.com/puma/puma.git
synced 2022-11-09 13:48:40 -05:00
A Ruby/Rack web server built for parallelism
fecb7c268d
git-svn-id: svn+ssh://rubyforge.org/var/svn/mongrel/trunk@445 19e92222-5c0b-0410-8929-a290d50e31e9 |
||
---|---|---|
bin | ||
doc/site | ||
examples | ||
ext/http11 | ||
lib | ||
projects | ||
test | ||
tools | ||
COPYING | ||
LICENSE | ||
Rakefile | ||
README | ||
setup.rb |
= Mongrel: Simple Fast Mostly Ruby Web Server Mongrel is a small library that provides a very fast HTTP 1.1 server for Ruby web applications. It is not particular to any framework, and is intended to be just enough to get a web application running behind a more complete and robust web server. What makes Mongrel so fast is the careful use of a C extension to provide fast HTTP 1.1 protocol parsing and fast URI lookup. This combination makes the server scream without too many portability issues. You can view http://mongrel.rubyforge.org for more information. == Quick Start After you've installed (either with gem install mongrel or via source) you should have the mongrel_rails command available in your PATH. Then you just do the following: > cd myrailsapp > mongrel_rails start This will start it in the foreground so you can play with it. It runs your application in production mode. To get help do: > mongrel_rails start -h Finally, you can then start in background mode (probably won't work in win32): > mongrel_rails start -d And you can stop it whenever you like with: > mongrel_rails stop All of which should be done from your application's directory. It writes the PID of the process you ran into log/mongrel.pid. There are also many more new options for configuring the rails runner including changing to a different directory, adding more MIME types, and setting processor threads and timeouts. == Install It doesn't explicitly require Camping, but if you want to run the examples/camping/ examples then you'll need to install Camping 1.2 at least (and redcloth I think). These are all available from RubyGems. The library consists of a C extension so you'll need a C compiler or at least a friend who can build it for you. Finally, the source includes a setup.rb for those who hate RubyGems. == Usage The examples/simpletest.rb file has the following code as the simplest example: require 'mongrel' class SimpleHandler < Mongrel::HttpHandler def process(request, response) response.start(200) do |head,out| head["Content-Type"] = "text/plain" out.write("hello!\n") end end end h = Mongrel::HttpServer.new("0.0.0.0", "3000") h.register("/test", SimpleHandler.new) h.register("/files", Mongrel::DirHandler.new(".")) h.run.join If you run this and access port 3000 with a browser it will say "hello!". If you access it with any url other than "/test" it will give a simple 404. Check out the Mongrel::Error404Handler for a basic way to give a more complex 404 message. This also shows the DirHandler with directory listings. This is still rough but it should work for basic hosting. *File extension to mime type mapping is missing though.* == Contact E-mail zedshaw at zedshaw.com and I'll help. Comments about the API are welcome.