bozohttpd (simple and lightweight HTTP server)
bozohttpd is a small and secure HTTP version 1.1 server. Its main
feature is the lack of features, reducing the code size and improving
verifiability. It supports CGI/1.1, HTTP/1.1, HTTP/1.0, HTTP/0.9, ~user
translations, virtual hosting support, as well as multiple IP-based
servers on a single machine. It is capable of serving pages via the
IPv6 protocol. bozohttpd features SSL support. By design, there is no
configuration file: all options are provided as command-line arguments.
bozohttpd is mainly intended to be run via inetd (see bozohttpd(8)),
but is capable of running as a standalone daemon (the -b option). There
is no startup script for daemon mode, but you can launch bozohttpd
from /etc/rc.d/rc.local.
bozohttpd has several features that can be disabled at compile time,
to reduce the binary size and/or to avoid security issues (features
that aren't included can't be exploited). See the file defines.default
for details on how to do this. By default, all features are enabled
(except maybe lua; see below).
Optional dependency: lua52 or lua53.
bozohttpd can be built with support for dynamic content using Lua. This
isn't needed for running CGI scripts that happen to be written in Lua.
It's for embedding a Lua interpreter in bozohttpd, in the style of
Apache's mod_php or mod_perl. As of bozohttpd-20181125, lua 5.1.x
(aka SBo's lua package) is no longer supported. You can set LUA in the
environment if the default isn't what you want:
LUA=yes - the default (autodetect; use highest version found, or none).
LUA=5.2 - use lua52, or fail if not found.
LUA=5.3 - use lua53, or fail if not found.
LUA=no - disable lua support, even if lua52 and/or lua53 are installed.
Without Lua support, the -L option to bozohttpd will not work.