Thttpd
From Leo's Notes
Last edited on 1 January 2022, at 20:46.
thttpd is a simple, portable, and minimalistic HTTP server. More information from their home page at: http://www.acme.com/software/thttpd/
Compiling
thttpd can be compiled with plain build utilities. On Alpine Linux, run the following:
# apk add gcc musl-dev make
## Get thttpd and compile
# wget http://www.acme.com/software/thttpd/thttpd-2.29.tar.gz
# tar -xzvf thttpd-2.29.tar.gz
# cd thttpd-2.29
## Compile
# ./configure
# make CCOPT='-O2 -s -static' thttpd
# cd cgi-src
# make STATICFLAG='-O2 -s -static' all
Because the binary is compiled and linked statically, you can run thttpd within an empty container.
Usage
| Description | Command |
|---|---|
| Start thttpd on port 8080 serving /www | thttpd -h 0.0.0.0 -p 8080 -d /www
|
| Allow CGI anywhere | thttpd -h 0.0.0.0 -p 8080 -d /www -c **
|
| Log to stdout | thttpd -h 0.0.0.0 -p 8080 -d /www -l -
|
| Start thttpd using a configuration file | thttpd -C thttpd.conf
|
Redirection
Redirections are handled by a separate CGI program. Included in the source tree is cgi-src/redirect.c which reads a .redirects file for the appropriate destinations.
To get this working:
- Compile
cgi-src/redirect.c. - Move redirect to your web root. Call it
redirect.cgi. - Symlink your source (for example,
index.htmlif you want to redirect the root location) toredirect.cgi - Add
/ http://somewhere.example.com/into.redirects.
See also
- http://www.acme.com/software/thttpd/thttpd_man.html
- Merecat httpd - https://github.com/troglobit/merecat/