lighttpd (prescribed pronunciation: "lighty") is an open-source
web server
A web server is computer software and underlying Computer hardware, hardware that accepts requests via Hypertext Transfer Protocol, HTTP (the network protocol created to distribute web content) or its secure variant HTTPS. A user agent, co ...
optimized for speed-critical environments while remaining standards-compliant, secure and flexible. It was originally written by Jan Kneschke as a
proof-of-concept
A proof of concept (POC or PoC), also known as proof of principle, is an inchoate realization of a certain idea or method in order to demonstrate its feasibility or viability. A proof of concept is usually small and may or may not be complete ...
of the
c10k problem – how to handle 10,000 connections in parallel on one server,
but has gained worldwide popularity. Its name is a
portmanteau
In linguistics, a blend—also known as a blend word, lexical blend, or portmanteau—is a word formed by combining the meanings, and parts of the sounds, of two or more words together. of "light" and
".
Premise
The low memory footprint (compared to other web servers), small
central processing unit, CPU load and speed optimizations make lighttpd suitable for servers that are suffering load problems, or for serving static media separately from dynamic content. lighttpd is
free and open-source software
Free and open-source software (FOSS) is software available under a license that grants users the right to use, modify, and distribute the software modified or not to everyone free of charge. FOSS is an inclusive umbrella term encompassing free ...
and is distributed under the
BSD license
BSD licenses are a family of permissive free software licenses, imposing minimal restrictions on the use and distribution of covered software. This is in contrast to copyleft licenses, which have share-alike requirements. The original BSD lic ...
. It runs natively on
Unix-like
A Unix-like (sometimes referred to as UN*X, *nix or *NIX) operating system is one that behaves in a manner similar to a Unix system, although not necessarily conforming to or being certified to any version of the Single UNIX Specification. A Uni ...
operating systems, with experimental support for
Microsoft Windows
Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
.
Application support
lighttpd supports the
FastCGI,
SCGI and
CGI interfaces to external programs, allowing web applications written in any programming language to be used with the server. As a particularly popular language,
PHP performance has received special attention. Lighttpd's FastCGI can be configured to support PHP with
opcode caches (like
APC) properly and efficiently. Additionally, it has received attention from its popularity within the
Python,
Perl
Perl is a high-level, general-purpose, interpreted, dynamic programming language. Though Perl is not officially an acronym, there are various backronyms in use, including "Practical Extraction and Reporting Language".
Perl was developed ...
,
Ruby
Ruby is a pinkish-red-to-blood-red-colored gemstone, a variety of the mineral corundum ( aluminium oxide). Ruby is one of the most popular traditional jewelry gems and is very durable. Other varieties of gem-quality corundum are called sapph ...
and
Lua communities. Lighttpd also supports WebDNA, the resilient
in-memory database
An in-memory database (IMDb, or main memory database system (MMDB) or memory resident database) is a database management system that primarily relies on main memory for computer data storage. It is contrasted with database management systems that e ...
system designed to build database-driven websites. It is a popular web server for the
Catalyst
Catalysis () is the increase in rate of a chemical reaction due to an added substance known as a catalyst (). Catalysts are not consumed by the reaction and remain unchanged after it. If the reaction is rapid and the catalyst recycles quick ...
and
Ruby on Rails web frameworks. Lighttpd does not support
ISAPI The Internet Server Application Programming Interface (ISAPI) is an ''n''-tier API of Internet Information Services (IIS), Microsoft's collection of Windows-based web server services. The most prominent application of IIS and ISAPI is Microsoft's w ...
.
Features
*
Load balancing,
CGI,
FastCGI,
SCGI,
HTTP proxy, Servlet
AJP,
WebSocket
WebSocket is a computer communications protocol, providing a full-duplex, simultaneous two-way communication channel over a single Transmission Control Protocol (TCP) connection. The WebSocket protocol was standardized by the Internet Engineering ...
tunnel support
*
chroot
chroot is a shell (computer), shell command (computing), command and a system call on Unix and Unix-like operating systems that changes the apparent root directory for the current running process and its Child process, children. A program that i ...
support
* Web server event mechanism performance –
select()
,
poll()
, and
epoll()
* Support for more efficient
event notification schemes like
kqueue
Kqueue is a scalable event notification interface introduced in FreeBSD 4.1 in July 2000, also supported in NetBSD, OpenBSD, DragonFly BSD, and macOS. Kqueue was originally authored in 2000 by Jonathan Lemon, then involved with the FreeBSD Core T ...
and
epoll
epoll is a Linux kernel system call for a scalable I/O event notification mechanism, first introduced in version 2.5.45 of the Linux kernel. Its function is to monitor multiple file descriptors to see whether I/O is possible on any of them. It is ...
* Conditional
URL rewriting (mod_rewrite)
*
TLS/SSL with
SNI support, via
OpenSSL
OpenSSL is a software library for applications that provide secure communications over computer networks against eavesdropping, and identify the party at the other end. It is widely used by Internet servers, including the majority of HTTPS web ...
,
GnuTLS,
Mbed TLS
Mbed TLS (previously PolarSSL) is an implementation of the Transport Layer Security, TLS and SSL protocols and the respective cryptographic algorithms and support code required. It is distributed under the Apache License version 2.0. Stated on t ...
,
NSS,
WolfSSL.
* Authentication against an
LDAP
The Lightweight Directory Access Protocol (LDAP ) is an open, vendor-neutral, industry standard application protocol for accessing and maintaining distributed Directory service, directory information services over an Internet Protocol (IP) networ ...
or DBI server
*
RRDtool
RRDtool (''round-robin database tool'') is a data logging and graphing system for time series data.
It aims to handle time series data such as computer network, network bandwidth (computing), bandwidth, temperatures or Load (computing), CPU loa ...
statistics
* Rule-based downloading with possibility of a script handling only authentication
*
Server Side Includes support (but not server-side CGI from SSI)
* Flexible
virtual hosting
* Modules support
*
Lua programming language scripts via mod_magnet
*
WebDAV
WebDAV (Web Distributed Authoring and Versioning) is a set of extensions to the Hypertext Transfer Protocol (HTTP), which allows user agents to collaboratively author contents ''directly'' in an HTTP web server by providing facilities for conc ...
support
*
HTTP compression using mod_deflate (zlib, brotli, zstd)
* Light-weight (less than 1
MB)
* Single-process design with only several threads. No processes or threads started per connection.
*
HTTP/2
HTTP/2 (originally named HTTP/2.0) is a major revision of the HTTP network protocol used by the World Wide Web. It was derived from the earlier experimental SPDY protocol, originally developed by Google. HTTP/2 was developed by the HTTP Working ...
support since lighttpd 1.4.56
*
HTTP/2
HTTP/2 (originally named HTTP/2.0) is a major revision of the HTTP network protocol used by the World Wide Web. It was derived from the earlier experimental SPDY protocol, originally developed by Google. HTTP/2 was developed by the HTTP Working ...
WebSocket
WebSocket is a computer communications protocol, providing a full-duplex, simultaneous two-way communication channel over a single Transmission Control Protocol (TCP) connection. The WebSocket protocol was standardized by the Internet Engineering ...
support since lighttpd 1.4.65
*
TLS Encrypted Client Hello (ECH) support since lighttpd 1.4.77
Limitations
* Versions below 1.4.40 do not officially support sending large files from CGI, FastCGI, or proxies unless X-Sendfile is used. This limitation has been removed in lighttpd 1.4.40.
* No
HTTP/3 support
Usage
Lighttpd was used in the past by several high-traffic websites, including
Bloglines
Bloglines was a web-based news aggregator for reading Web syndication, syndicated feeds using the RSS and Atom (standard), Atom formats. Users could subscribe to the syndicated feeds for free using a web browser. Bloglines offered an application ...
,
xkcd
''xkcd'' is a serial webcomic created in 2005 by American author Randall Munroe. Sometimes styled ''XKCD'', the comic's tagline describes it as "a webcomic of romance, sarcasm, math, and language". Munroe states on the comic's website that the ...
,
Meebo, and
YouTube
YouTube is an American social media and online video sharing platform owned by Google. YouTube was founded on February 14, 2005, by Steve Chen, Chad Hurley, and Jawed Karim who were three former employees of PayPal. Headquartered in ...
. The
Wikimedia Foundation
The Wikimedia Foundation, Inc. (WMF) is an American 501(c)(3) nonprofit organization headquartered in San Francisco, California, and registered there as foundation (United States law), a charitable foundation. It is the host of Wikipedia, th ...
also once ran Lighttpd servers.
Due to relatively small size it's often used in embedded devices like GL.iNet and
Turris Omnia.
It's also used by
git
Git () is a distributed version control system that tracks versions of files. It is often used to control source code by programmers who are developing software collaboratively.
Design goals of Git include speed, data integrity, and suppor ...
as a HTTP server daemon.
See also
*
Comparison of web server software
*
Internet Cache Protocol The Internet Cache Protocol (ICP) is a User Datagram_Protocol, UDP-based protocol (computing), protocol used for coordinating web caches. Its purpose is to find out the most appropriate location to retrieve a requested object in the situation where ...
*
Proxy server which discusses client-side proxies
*
Reverse proxy which discusses origin-side proxies
*
Traffic Server
The The Apache Software Foundation, Apache Traffic Server (ATS) is a modular, high-performance reverse proxy and forward proxy server, generally comparable to Nginx and Squid (software), Squid. It was created by Inktomi, and distributed as a co ...
*
Web accelerator which discusses host-based HTTP acceleration
References
Further reading
*
External links
*
{{Web server software
Cross-platform free software
Free software programmed in C
Free web server software
Unix network-related software
Web server software for Linux
Windows Internet software