Web Servers for Embedded Systems

Orange Pi Development Boards

Many network-enabled embedded devices do not have displays and configuration must be done via a webpage. This is the case for modems and routers and possibly for  IP cameras,  networked printers… With a web server, there is no need to develop specific drivers and/or applications for computers connected to the device. You just need to write HTML/Javascript pages and possibly CGI scripts.

I’ve already posted a blog post about mathopd for ARM no-mmu targets as this HTTP server is ideal for uCLinux since it does not fork.

Today, I’ll list some other HTTP servers that may also be used with embedded processors.

Tiny/Turbo/Throttling HTTP server

Tiny HTTP server logothttpd is a lightweight HTTP server implementing the HTTP/1.1 (minimum) and simple to configure and run. Its executable size is 88K. The description says it does not fork, but fork is called in the source code, so I do not know what that means…

It’s is very portable and it can compiles cleanly on most Unix-like operating systems. It’s about as fast as full-featured servers and much faster on very high loads (because reduces the server load for the same amount of work). See benchmark results (a bit outdated) for details.

License: BSD

Busybox HTTP Server

BusyboxYou can also enable httpd in BusyBox. It’s very tiny (only adds about 9 K to BusyBox 1.5). It still has quite a few features including CGI and HTTP authentication. It can also support php by adding /usr/bin/php5-cgi. You should probably try this server to see if it fits your needs before choosing one of the other HTTP servers.

License: GPLv2


Boa web server is designed to be simple, fast and secure. However, it has not been developed since 2005. It used to be popular in embedded systems (especially uClinux) since it does not need to fork.

License: GPL

Lighttpd Server

lighty logo lighttpd  (pronounced lighty) is a low footprint server good at managing high loads. It’s more powerful than the other solution above and is still actively developed. The latest version lighttpd 1.4.29 has been released on the 3rd of July 2011. A 2007 benchmark shows better performance than Apache and LiteSpeed. That’s probably why lighttpd also powers several popular Web 2.0 sites like YouTube, Wikipedia, and meebo.

With a small memory footprint compared to other web servers such as Apache, effective management of the CPU-load, and advanced feature set (FastCGI, SCGI, Auth, Output-Compression, URL-Rewriting and many more) lighttpd can be used in embedded servers (e.g. NAS, ARM web server) that require high performance.

License: revised BSD license.

Support CNX Software - Donate via PayPal or become a Patron on Patreon

Leave a Reply

3 Comment threads
0 Thread replies
Most reacted comment
Hottest comment thread
2 Comment authors
cnxsoftsherazMonkey, an Open Source High Performance Embedded Web Server | CNXSoft – Embedded Software Development Recent comment authors
newest oldest most voted
Notify of

[…] Web Server June 25th, 2012 cnxsoft Leave a comment Go to commentsSome time ago, I mentioned 5 web servers (mathopd, thttpd, busybox httpd, boa and lighttpd) suitable for embedded systems (including those […]


i have a development board which i want to configure through a webpage. can you provide me study material to do it.