HOME

TheInfoList



OR:

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