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