nhttpd is a simple, fast and secure HTTP server. It runs as a single process, handling connections with select(2). For CGIs and directory listing it does fork(2). nhttpd has the minimum of HTTP/1.1 and CGI/1.1 implemented. Also supported are; chroot, setuid, basic authentication, SSL, IPv6, custom repsonses, aliases, and virtual hosts. To stop the server send a SIGTERM signal to the PID. The access log is written in standard CLF format.
Read more in the man page.
Note: Compilation and testing has been successfully done on OpenBSD, FreeBSD, NetBSD, and Linux.
Get current development source
cvs -d email@example.com:/cvs checkout nostromo
Get latest release
cvs -d firstname.lastname@example.org:/cvs checkout -r NOSTROMO_1_9_5 nostromo
Updated: 19th January 2006
To see how nostromo performs, we have compared it with two popular webservers. That is apache and thttpd. The load has been generated with http_load. We used a sparc as client and an intel as server connected to a switch, all 100Mbit. Here the data put together in detail:
http_load -checksum -parallel n -seconds 15 url
Client: resurrection, Sun Ultra 2, SPARC 400MHz, 100Mbit NIC
We did the measurement for three different scenarios; small files of 1KB, larger files of 16KB, and a small CGI. The measurement always started with 5 concurrent clients and increased for 5 clients every 15 seconds until the maximum of 300 concurrent clients was reached. To be sure that the sent data was right, we turned on checksum verification in http_load.
The measurements have been repeated several times at different days and compared together, so we can be sure that the results are correct. And here they are: