1
2========
3lighttpd
4========
5
6-------------
7a light httpd
8-------------
9
10:author: Jan Kneschke
11:Date: $Date: 2004/11/03 22:25:54 $
12:Revision: $Revision: 1.8 $
13
14:abstract:
15  lighttpd a secure, fast, compliant and very flexible web-server
16  which has been optimized for high-performance environments. It has a very
17  low memory footprint compared to other webservers and takes care of cpu-load.
18  Its advanced feature-set (FastCGI, CGI, Auth, Output-Compression,
19  URL-Rewriting and many more) make lighttpd the perfect webserver-software
20  for every server that is suffering load problems.
21
22:documentation:
23  http://wiki.lighttpd.net/
24
25the naming
26----------
27
28lighttpd is a __httpd__ which is
29
30- fast as __light__ning and
31- __light__ when it comes to memory consumption and system requirements
32
33Features
34--------
35
36Network
37```````
38
39- IPv4, IPv6
40
41Protocols
42`````````
43
44- HTTP/1.0 (http://www.ietf.org/rfc/rfc1945.txt)
45- HTTP/1.1 (http://www.ietf.org/rfc/rfc2616.txt)
46- HTTPS (provided by openssl)
47- CGI/1.1 (http://CGI-Spec.Golux.Com/)
48- FastCGI (http://www.fastcgi.com/devkit/doc/fcgi-spec.html)
49
50Advanced Features
51`````````````````
52
53- load-balanced FastCGI
54  (one webserver distributes requests to multiple PHP-servers via FastCGI)
55- custom error pages (for Response-Code 400-599)
56- virtual hosts
57- directory listings
58- streaming CGI and FastCGI
59- URL-Rewriting
60- HTTP-Redirection
61- output-compression with transparent caching
62
63FastCGI-Support
64```````````````
65
66- parses the Response-header and completes the HTTP-header accordingly
67- Keep-Alive handling based on Content-Length header
68
69PHP-Support
70```````````
71
72- same speed as or faster than apache + mod_php4
73- handles various PHP bugs in the FastCGI SAPI
74- includes a utility to spawn FastCGI processes (necessary for PHP 4.3.x)
75
76Security features
77`````````````````
78
79- chroot(), set UID, set GID
80- protecting docroot
81
82HTTP/1.1 features
83`````````````````
84
85- Ranges (start-end, start-, -end, multiple ranges)
86- HTTP/1.0 Keep-Alive + HTTP/1.1 persistent Connections
87- methods: GET, HEAD, POST
88- Last-Modified + If-Modified handling
89- sends Content-Length if possible
90- sends Transfer-Encoding: chunk, if Content-Length is not possible
91- sends Content-Type
92- on-the-fly output compression (deflate, gzip)
93- authentication: basic and digest
94  (http://www.ietf.org/rfc/rfc2617.txt)
95
96HTTP/1.1 compliance
97```````````````````
98
99- Sends 206 for Range Requests
100- Sends 304 for If-Modified Requests
101- Sends 400 for missing Host on HTTP/1.1 requests
102- Sends 400 for broken Request-Line
103- Sends 411 for missing Content-Length on POST requests
104- Sends 416 for "out-of-range" on Range: Header
105- Sends 501 for request-method != (GET|POST|HEAD)
106- Sends 505 for protocol != HTTP/1.0 or HTTP/1.1
107- Sends Date: on every requests
108
109Intended Audience
110-----------------
111
112- Ad-Server Front-Ends ("Banner-Schleuder")
113  - delivering small files rapidly
114- php-servers under high load
115  (load-balancing the php-request over multiple PHP-servers)
116
117Works with
118----------
119
120It has been tested to work with
121
122- IE 6.0
123- Mozilla 1.x
124- Konqueror 3.1
125  (for Keep-Alive/Persistent Connections, Accept-Encoding for PHP + gzip)
126- wget
127  (for Resuming)
128- acrobat plugin
129  (for multiple ranges)
130
131
132Works on
133--------
134
135lighttpd has been verified to compile and work on
136
137- Linux
138- FreeBSD
139- NetBSD
140- Solaris 8 + 9
141- SGI IRIX 6.5
142
143missing for HTTP/1.1 compliance
144-------------------------------
145- parsing chunked POST request
146
147-----------------
148Starting lighttpd
149-----------------
150
151As daemon in the background: ::
152
153  $ lighttpd -f <configfile>
154
155or without detaching from the console: ::
156
157  $ lighttpd -D -f <configfile>
158
159
160