lighttpd 1.4.x https://www.lighttpd.net/
Go to file
Glenn Strauss 4ebc8afa04 [core] disable MPTCP support by default
Matthieu Baerts notes:
MPTCP is currently not compatible with KTLS: they both use the
same technique to extend TCP behaviour in the kernel (TCP ULP).

Disable network_mptcp if socket() IPPROTO_MPTCP fails and omit trace,
since it probably indicates MPTCP support is not available, and lighttpd
transparently falls back to IPPROTO_TCP.

Matthieu Baerts notes:
Creating a socket with IPPROTO_MPTCP may fail with
ENOPROTOOPT (Protocol not available: linked to net.mptcp.enabled sysctl)
EPROTONOSUPPORT (Protocol not supported: MPTCP not compiled on >= v5.6)
EINVAL (Invalid argument: MPTCP is not available on kernels < 5.6).

If socket() failed for other reasons, then the socket() IPPROTO_TCP
fallback which immediately follows will likely fail the same way and
lighttpd will error out.

x-ref:
  "[core] add MPTCP support"
  https://github.com/lighttpd/lighttpd1.4/pull/132

github: closes #132
2024-03-18 12:45:14 -04:00
.github/workflows [ci] prefer dash for Cygwin and MSYS2 builds 2024-02-27 05:42:26 -05:00
doc [doc] update TLS comment in sample lighttpd.conf 2024-03-08 00:47:37 -05:00
scripts [cmake] fix LEMON_PATH with empty CMAKE_BUILD_TYPE 2024-02-26 00:01:24 -05:00
src [core] disable MPTCP support by default 2024-03-18 12:45:14 -04:00
tests [ci] special-cases for running tests under MSYS2 2024-01-16 12:39:02 -05:00
.gitattributes update .gitignore, add .gitattributes 2017-02-28 12:01:53 -05:00
.gitignore [meson] add wrapdb instructions 2022-09-23 03:39:22 -04:00
AUTHORS [doc] update stbuehler address 2023-07-12 01:59:43 +02:00
CMakeLists.txt - next is 1.4.76 2024-03-13 11:14:57 -04:00
COPYING - white space cleanup part 2 this time 1.4 ;) 2006-10-04 13:26:23 +00:00
INSTALL [build] remove libuuid dependency (fixes #1056) 2024-02-15 23:46:46 -05:00
Makefile.am [build] add GNUMAKEFLAGS=--no-print-directory 2020-12-27 21:37:28 -05:00
NEWS [doc] NEWS 2024-03-13 11:04:26 -04:00
README [doc] update README and INSTALL 2020-10-11 12:19:26 -04:00
README.FreeBSD [build] remove libuuid dependency (fixes #1056) 2024-02-15 23:46:46 -05:00
SConstruct - next is 1.4.76 2024-03-13 11:14:57 -04:00
autogen.sh [build] more portable autogen.sh shell script 2020-10-23 21:27:32 -04:00
configure.ac - next is 1.4.76 2024-03-13 11:14:57 -04:00
distribute.sh.in [doc] use https:// URLs to .lighttpd.net resources 2017-10-22 15:01:48 -04:00
meson.build - next is 1.4.76 2024-03-13 11:14:57 -04:00
meson_options.txt [build] remove libuuid dependency (fixes #1056) 2024-02-15 23:46:46 -05:00
packdist.sh [build] packdist.sh now produces .md for www.l.n 2023-08-01 04:12:39 -04:00

README

========
lighttpd
========

-------------
a light httpd
-------------

:abstract:
  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.

:documentation:
  https://redmine.lighttpd.net/projects/lighttpd/wiki/

the naming
----------

lighttpd is a __httpd__ which is

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

Features
--------

Network
```````

- IPv4, IPv6

Protocols
`````````

- HTTP/2   (https://tools.ietf.org/rfc/rfc7540.txt)
- HTTP/1.1 (https://tools.ietf.org/rfc/rfc2616.txt)
- HTTP/1.0 (https://tools.ietf.org/rfc/rfc1945.txt)
- HTTPS (via one of openssl, BoringSSL, LibreSSL, mbedTLS, wolfSSL, GnuTLS, NSS)
- CGI/1.1 (https://tools.ietf.org/html/rfc3875.txt)
- FastCGI (http://www.fastcgi.com/devkit/doc/fcgi-spec.html)

Advanced Features
`````````````````

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

FastCGI-Support
```````````````

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

PHP-Support
```````````

- 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://www.ietf.org/rfc/rfc2617.txt)

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>