Module index
Modules
| name | description |
|---|---|
| plugin_core | contains the core features for generic request handling, static files, log files and buffer limits. |
| mod_access | lets you filter clients by IP address. |
| mod_accesslog | logs requests handled by lighttpd to files, pipes or syslog. The format of the logs can be customized using printf-style placeholders. |
| mod_auth | requires authentication from clients using a username and password. It supports the basic (digest not yet) authentication method as well as plaintext, htpasswd and htdigest backends. |
| mod_balance | balances between different backends. |
| mod_cache_disk_etag | caches generated content on disk if an etag response header is set; if the backend sends an already cached etag, the backend is closed and the file is sent directly. |
| mod_debug | offers various utilities to aid you debug a problem. |
| mod_deflate | mod_deflate compresses content on the fly |
| mod_dirlist | lists files inside a directory. The output can be customized in various ways from style via css to excluding certain entries. |
| mod_expire | add "Expires" and "Cache-Control" headers to the response |
| mod_fastcgi | connect to FastCGI backends for generating response content |
| mod_flv | provides flash pseudo streaming |
| mod_fortune | loads quotes (aka fortune cookies) from a file and provides actions to add a random quote as response header (X-fortune) or display it as a page. |
| mod_gnutls | listens on separate sockets for TLS connections (https) using GnuTLS |
| mod_limit | limits concurrent connections or requests per second. |
| mod_lua | load lua plugins and actions |
| mod_core (lua) | provides some useful helpers written in lua |
| mod_secdownload (lua) | protects files with a time limited code |
| mod_memcached | caches content on memcached servers |
| mod_openssl | listens on separate sockets for TLS connections (https) using OpenSSL |
| mod_progress | track connection progress (state) via a unique identifier |
| mod_proxy | connect to HTTP backends for generating response content |
| mod_redirect | redirect clients by sending a http status code 301 plus Location header |
| mod_rewrite | modifies request path and querystring |
| mod_scgi | connect to SCGI backends for generating response content |
| mod_status | displays a page with internal statistics like amount of requests (total or per second), active connections etc. |
| mod_throttle | limits outgoing bandwidth usage |
| mod_userdir | allows you to have user-specific document roots being accessed through http://domain/~user/ |
| mod_vhost | offers various ways to implement virtual webhosts |
Actions
| name | module | description |
|---|---|---|
| access.check | mod_access | allows or denies access based on client IP address |
| access.deny | mod_access | denies access by returning a 403 status code |
| alias | plugin_core | sets doc-root depending on a matching prefix |
| auth.deny | mod_auth | handles request with "401 Unauthorized" |
| auth.htdigest | mod_auth | requires authentication using a htdigest file |
| auth.htpasswd | mod_auth | requires authentication using a htpasswd file |
| auth.plain | mod_auth | requires authentication using a plaintext file |
| auth.require_user | mod_core (lua) | require a specific authenticated user |
| balance.rr | mod_balance | balance between actions (list or single action) with Round-Robin |
| balance.sqf | mod_balance | balance between actions (list or single action) with SQF |
| cache.disk.etag | mod_cache_disk_etag | cache responses based on the ETag response header |
| core.cached_html | mod_core (lua) | try to find a file for the current url with ".html" suffix, if we couldn't find a static file for the url yet and the url doesn't already have the ".html" suffix. |
| core.wsgi | mod_core (lua) | Splits the url into SCRIPT_NAME (the subdirectory a web application is mounted at) and PATH_INFO (the path the web application should route) |
| core.xsendfile | mod_core (lua) | provides a simple X-Sendfile feature; send a "X-Sendfile: /path/to/file" response header from your backend |
| debug.profiler_dump | mod_debug | dumps all allocated memory to the profiler output file if profiling enabled |
| debug.show_connections | mod_debug | shows a page similar to the one from mod_status, listing all active connections |
| debug.show_events | mod_debug | shows a plain text list of all events |
| deflate | mod_deflate | waits for response headers; if the response can be compressed deflate adds a filter to compress it |
| dirlist | mod_dirlist | lists file in a directory |
| docroot | plugin_core | sets doc-root, and builds physical path for requested file |
| env.add | plugin_core | sets a connection environment variable if not already set |
| env.clear | plugin_core | removes all connection environment variables |
| env.remove | plugin_core | removes a connection environment variable |
| env.set | plugin_core | sets a connection environment variable |
| expire | mod_expire | adds an "Expires" header to the response |
| fastcgi | mod_fastcgi | connect to FastCGI backend |
| flv | mod_flv | pseudo stream the current file as flash |
| fortune.header | mod_fortune | adds a random quote as response header "X-fortune". |
| fortune.page | mod_fortune | shows a random cookie as response text |
| header.add | plugin_core | adds a new response header line |
| header.append | plugin_core | appends value to response header line |
| header.overwrite | plugin_core | overwrite response header line or add new one |
| header.remove | plugin_core | remove existing response header |
| index | plugin_core | default filenames to show in a directory |
| io.buffer_in | plugin_core | set memory limit for incoming chunkqueues (default is 256KiB) |
| io.buffer_out | plugin_core | set memory limit for outgoing chunkqueues (default is 256KiB) |
| io.throttle | mod_throttle | set the outgoing throttle limits for current connection |
| io.throttle_ip | mod_throttle | adds the current connection to an IP-based throttle pool for outgoing limits |
| io.throttle_pool | mod_throttle | adds the current connection to a throttle pool for outgoing limits |
| limit.con | mod_limit | limits the total amount of concurrent connections to the specified limit. |
| limit.con_ip | mod_limit | limits the total amount of concurrent connections per IP to the specified limit. |
| limit.req | mod_limit | limits the amount of requests per second to the specified limit. |
| limit.req_ip | mod_limit | limits the amount of requests per second per IP to the specified limit. |
| list | plugin_core | (lua) combines a list of actions into one action, only needed in lua |
| log | plugin_core | overwrite log targets for all log levels |
| log.write | plugin_core | writes a log message to the "info" log level |
| lua.handler | mod_lua | load file as lua config |
| map | plugin_core | maps the result of a pattern to a user defined action |
| memcached.lookup | mod_memcached | searches the content in a memcached database |
| memcached.store | mod_memcached | stores the generated response in a memcached database |
| openssl.setenv | mod_openssl | set SSL environment strings |
| pathinfo | plugin_core | splits physical path into existing file/directory and the remaining PATH_INFO |
| progress.show | mod_progress | returns state information about the request tracked with the ID specified by the X-Progress-ID querystring parameter |
| progress.track | mod_progress | tracks the current request if the X-Progress-ID querystring key is supplied |
| proxy | mod_proxy | connect to HTTP backend |
| redirect | mod_redirect | redirect clients |
| req_header.add | plugin_core | adds a new request header line |
| req_header.append | plugin_core | appends value to request header line |
| req_header.overwrite | plugin_core | overwrite request header line or add new one |
| req_header.remove | plugin_core | remove existing request header |
| respond | plugin_core | returns a quick response with optional body |
| rewrite | mod_rewrite | modify request path and querystring |
| rewrite_raw | mod_rewrite | modify request path and querystring, matching and writing raw path |
| scgi | mod_scgi | connect to SCGI backend |
| secdownload | mod_secdownload (lua) | protect files with a time limited code |
| set_status | plugin_core | modify HTTP status code |
| static | plugin_core | handle GET and HEAD requests with a static file from disk |
| static_no_fail | plugin_core | handle GET and HEAD requests with a static file from disk |
| status.info | mod_status | returns the status page to the client |
| userdir | mod_userdir | builds the document root by replacing certain placeholders in path with (parts of) the username. |
| vhost.map | mod_vhost | maps given hostnames to action blocks |
| vhost.map_regex | mod_vhost | maps matching hostname patterns to action blocks |
| when | plugin_core | (lua) build a conditional block (only usable in lua) |
Setups
| name | module | description |
|---|---|---|
| debug.show_events_after_shutdown | mod_debug | time in seconds after start of shutdown to log remaining active events |
| fetch.files_static | plugin_core | starts a Fetch API provider |
| fortune.load | mod_fortune | loads cookies from a file, can be called multiple times to load data from multiple files |
| gnutls | mod_gnutls | setup a TLS socket |
| io.timeout | plugin_core | sets the global I/O timeout (wait for network read and write) |
| listen | plugin_core | listen to a socket address, see above for accepted formats (default TCP port is 80) |
| log | plugin_core | sets default log targets for all log levels |
| log.timestamp | plugin_core | sets the format string to use for timestamps in the log |
| lua.plugin | mod_lua | load file as lua plugin |
| module_load | plugin_core | load the given module(s) |
| openssl | mod_openssl | setup a TLS socket |
| progress.ttl | mod_progress | Time to live in seconds for entries after a disconnect in the internal lookup table |
| stat_cache.ttl | plugin_core | set TTL for stat cache entries |
| tasklet_pool.threads | plugin_core | sets number of background threads for blocking tasks |
| workers | plugin_core | sets worker count; each worker runs in its own thread and works on the connections it gets assigned from the master worker |
| workers.cpu_affinity | plugin_core | binds worker threads to a cpu, only available on Linux systems |
Options
| name | module | description |
|---|---|---|
| access.log_blocked | mod_access | whether to log when access was denied (with log level "info") |
| access.redirect_url | mod_access | url to redirect to if access was denied (not implemented yet) |
| accesslog | mod_accesslog | defines the log target |
| accesslog.format | mod_accesslog | defines the log format |
| auth.debug | mod_auth | enable debug output |
| balance.debug | mod_balance | enable debug output |
| buffer_request_body | plugin_core | enable buffering request body on disk |
| debug.log_request_handling | plugin_core | enable debug output for request handling |
| deflate.debug | mod_deflate | enable debug output |
| etag.use | plugin_core | list of properties used to calculate etag; specify empty list to disable etags. Available: "inode", "mtime", "size" |
| fastcgi.log_plain_errors | mod_fastcgi | whether to prepend timestamp and other info to FastCGI stderr lines in the "backend" log |
| keepalive.requests | plugin_core | maximum number of requests a client is allowed to make in one connection |
| keepalive.timeout | plugin_core | how long a keep-alive connection is kept open (in seconds) |
| mime_types | plugin_core | maps file extensions to MIME types |
| progress.debug | mod_progress | enable debug output |
| progress.methods | mod_progress | Request methods to track |
| redirect.debug | mod_redirect | enable debug output |
| rewrite.debug | mod_rewrite | enable debug output |
| server.name | plugin_core | server name; is used in some places instead of the HTTP request hostname if the latter was not specified in the (HTTP/1.0) request |
| server.tag | plugin_core | used to display server name + version in different places (HTTP response header, CGI environment, mod_dirlist footer, ...) |
| stat.async | plugin_core | enables async stat() calls |
| static.exclude_extensions | plugin_core | don't deliver static files with one of the listed extensions |
| static.range_requests | plugin_core | enabled ranged requests |
| status.css | mod_status | defines the stylesheet to use. available: unset (default), "blue" or any url you wish |
| strict.post_content_length | plugin_core | require Content-Length for POST requests |
| vhost.debug | mod_vhost | enable debug output |