1
0
Fork 0
mirror of https://github.com/puma/puma.git synced 2022-11-09 13:48:40 -05:00
puma--puma/README

87 lines
2.8 KiB
Text
Raw Normal View History

= 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.