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