lighttpd 1.4.x
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Glenn Strauss c8a1cba0c1 [tests] t/test_mod_userdir 10 months ago
doc [config] update /var/run -> /run for systemd 9 months ago
scripts [build] Fix build when using nested CMake 9 months ago
src [tests] t/test_mod_userdir 4 months ago
tests [tests] t/test_mod_userdir 4 months ago
.gitattributes update .gitignore, add .gitattributes 3 years ago
.gitignore [tests] t/test_mod_userdir 4 months ago
AUTHORS [doc] add self to AUTHORS (discussed w/ stbuehler) 4 years ago
CMakeLists.txt - next is 1.4.56 9 months ago
COPYING - white space cleanup part 2 this time 1.4 ;) 14 years ago
INSTALL [doc] use https:// URLs to resources 3 years ago [meson] new build system 3 years ago
NEWS [doc] NEWS 9 months ago
README [doc] use https:// URLs to resources 3 years ago
README.FreeBSD build with libressl 4 years ago
SConstruct [mod_webdav] use copy_file_range() if available 4 months ago [autobuild] put ax_prog_cc_for_build.m4 in top directory 4 years ago [mod_webdav] use copy_file_range() if available 4 months ago [doc] use https:// URLs to resources 3 years ago - next is 1.4.56 9 months ago
meson_options.txt [mod_maxminddb] MaxMind GeoIP2 support 1 year ago [doc] use https:// URLs to resources 3 years ago



a light httpd

lighttpd a secure, fast, compliant and very flexible web-server
which has been optimized for high-performance environments. It has a very
low memory footprint compared to other webservers and takes care of cpu-load.
Its advanced feature-set (FastCGI, CGI, Auth, Output-Compression,
URL-Rewriting and many more) make lighttpd the perfect webserver-software
for every server that is suffering load problems.


the naming

lighttpd is a __httpd__ which is

- fast as __light__ning and
- __light__ when it comes to memory consumption and system requirements



- IPv4, IPv6


- HTTP/1.0 (
- HTTP/1.1 (
- HTTPS (provided by openssl)
- CGI/1.1 (http://CGI-Spec.Golux.Com/)
- FastCGI (

Advanced Features

- load-balanced FastCGI
(one webserver distributes requests to multiple PHP-servers via FastCGI)
- custom error pages (for Response-Code 400-599)
- virtual hosts
- directory listings
- streaming CGI and FastCGI
- URL-Rewriting
- HTTP-Redirection
- output-compression with transparent caching


- parses the Response-header and completes the HTTP-header accordingly
- Keep-Alive handling based on Content-Length header


- same speed as or faster than apache + mod_php4
- handles various PHP bugs in the FastCGI SAPI
- includes a utility to spawn FastCGI processes (necessary for PHP 4.3.x)

Security features

- chroot(), set UID, set GID
- protecting docroot

HTTP/1.1 features

- Ranges (start-end, start-, -end, multiple ranges)
- HTTP/1.0 Keep-Alive + HTTP/1.1 persistent Connections
- methods: GET, HEAD, POST
- Last-Modified + If-Modified handling
- sends Content-Length if possible
- sends Transfer-Encoding: chunk, if Content-Length is not possible
- sends Content-Type
- on-the-fly output compression (deflate, gzip)
- authentication: basic and digest

HTTP/1.1 compliance

- Sends 206 for Range Requests
- Sends 304 for If-Modified Requests
- Sends 400 for missing Host on HTTP/1.1 requests
- Sends 400 for broken Request-Line
- Sends 411 for missing Content-Length on POST requests
- Sends 416 for "out-of-range" on Range: Header
- Sends 501 for request-method != (GET|POST|HEAD)
- Sends 505 for protocol != HTTP/1.0 or HTTP/1.1
- Sends Date: on every requests

Intended Audience

- Ad-Server Front-Ends ("Banner-Schleuder")
- delivering small files rapidly
- php-servers under high load
(load-balancing the php-request over multiple PHP-servers)

Works with

It has been tested to work with

- IE 6.0
- Mozilla 1.x
- Konqueror 3.1
(for Keep-Alive/Persistent Connections, Accept-Encoding for PHP + gzip)
- wget
(for Resuming)
- acrobat plugin
(for multiple ranges)

Works on

lighttpd has been verified to compile and work on

- Linux
- FreeBSD
- NetBSD
- OpenBSD
- Solaris 8 + 9
- SGI IRIX 6.5
- Windows (when compiled under cygwin)
(and will likely compile and run on most unix-like systems with C99 compiler)

Starting lighttpd

As daemon in the background: ::

$ lighttpd -f <configfile>

or without detaching from the console: ::

$ lighttpd -D -f <configfile>