evanweaver (author)
Thu Oct 25 20:31:46 -0700 2007
mongrel / README
100644 87 lines (58 sloc) 2.837 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
= 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.