Boa web server

This page is the default index. No site has been configured.


About boa

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.

Configuration

The configuration lives in /etc/boa/boa.conf. Important directives include:

Replacing this page

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.

CGI scripts

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.

Caveats

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.

Logging

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