This page is the default index. No site has been configured.
Boa is a single-tasking HTTP server that was popular on embedded systems and routers because of its tiny footprint. It handles one request at a time within the main process and forks for CGI execution. The resulting binary fits in a few hundred kilobytes, which made it the default choice for many flashed firmware images. The code base is small enough that a single person can audit it from end to end in an afternoon.
The configuration lives in /etc/boa/boa.conf. Important directives include:
Port — the TCP port to listen on.User and Group — the process credentials after start-up.DocumentRoot — where site files live.DirectoryIndex — the file to serve when a directory is requested.ErrorLog and AccessLog — log file paths.MimeTypes — path to the mime.types file.ServerName — what the server reports for itself.Drop an index.html into the document root and the next request will return your file instead. The server reads file contents on every request, so no reload is needed for content changes.
If you change the configuration file, send the process a HUP signal or restart through the init script that ships with the package.
For dynamic content, drop executable scripts into the CGI directory configured by ScriptAlias. Boa forks a new process per CGI invocation, so heavy scripts add measurable latency. The fork cost on small embedded systems can dominate the response time on slow CPUs.
Because boa is single-tasked, slow CGI scripts block the server. Keep CGI handlers cheap or move them to a more capable server if you need higher concurrency or persistent application processes. The same applies to any handler that performs synchronous network calls during the request.
Both access and error logs default to plain text. Rotation is the operating system's responsibility, not the server's. On constrained systems you may want to send logs to a remote collector or simply discard them.
node-7 · boa · single-process