常见的嵌入式 Web 服务器
本文介绍在嵌入式领域中常用的一些 Web 服务器(HTTP 服务器),包括 Lighttpd、Shttpd、Mongoose、Thttpd、Boa、Mini_httpd、Appweb、Goahead、Althttpd 等。
Lighttpd
Lighttpd 是一个开源轻量级嵌入式 Web server,是提供一个专门针对高性能网站,安全、快速、兼容性好并且灵活的 Web server 环境。具有非常低的内存开销,CPU 占用率低,效能好,以及丰富的模块等特点。
Lighttpd 适合静态资源类的服务,比如图片、资源文件、静态 HTML 等等的应用,性能应该比较好,同时也适合简单的 CGI 应用的场合,Lighttpd 可以很方便的通过 fastcgi 支持 php。
Shttpd
Shttpd,开源。它是另一个轻量级的 Web server,具有比 thttpd 更丰富的功能特性,支持 CGI、SSL、cookie、MD5 认证,还能嵌入(embedded)到现有的软件里。最有意思的是不需要配置文件!由于 shttpd 可以轻松嵌入其他程序里,因此 shttpd 是较为理想的 Web server 开发原形,开发人员可以基于 shttpd 开发出 自己的 Web server,官方网站上称 shttpd 如果使用 uclibc/dielibc(libc 的简化子集)则开销将非常非常低。
项目网址:https://docs.huihoo.com/shttpd/
Mongoose
Mongoose Web Server 是一款易于使用的 web 服务器,它可以嵌入到其它应用程序中,为其提供 Web 接口。Mongoose 的前身是 shttpd,它完全开源和自由使用。Mongoose web 服务器的执行是自满足的,只需要使用 mongoose.c 和 mongoose.h 两个文件,它不依赖于任何其他服务。跨平台,支持 Windows、OS X 和 Linux,支持 CGI、SSL、SSI、Digest (MD5) 认证,WebSocket 和 WebDAV,支持断点续传和 URL 重写,基于 IP 的 ACL,支持 Windows 服务,支持 GET、POST、HEAD、PUT、DELETE 方法。
项目网址:https://mongoose.ws
Thttpd
Thttpd 是一款比较精巧的开源 Web 服务器。它的初衷是提供一款简单、小巧、易移植、快速和安全的 HTTP 服务器。对于并发请求不使用 fork 来派生子进程处理,而是采用多路复用(Multiplex)技术来实现。
Thttpd 至少和主流的 Web server 一样快,在高负载下更快,因为其资源占用小的缘故。
Thttpd 还有一个较为引人注目的特点:基于 URL 的文件流量限制,这对于下载的流量控制而言是非常方便的。像 Apache 就必须使用插件实现,效率较 thttpd 低。Thttp 是开源的,采用 C 语言编写,得到广泛使用。
项目网址:https://acme.com/software/thttpd/
Boa
Boa 服务器是一个小巧高效的 Web 服务器,是一个运行于 Unix 或 Linux 下的,支持 CGI 的、适合于嵌入式系统的单任务的 http 服务器,源代码开放、性能高。
Boa 是一种非常小巧的 Web 服务器,其可执行代码只有大约 60KB 左右。作为一种单任务 Web 服务器,Boa 只能依次完成用户的请求,而不会 fork 出新的进程来处理并发连接请求。但 Boa 支持 CGI,能够为 CGI 程序 fork 出一个进程来执行。Boa 的设计目标是速度和安全。
项目网址:http://www.boa.org
Mini_httpd
Mini_httpd 是一个小型的 HTTP 服务器。开源,它的性能不强,但是它非常适合于中小访问量的站点。Mini_httpd 和 thttpd 都是 ACME Labs 开发的软件,功能没有 thttpd 强。
项目网址:https://acme.com/software/mini_httpd/
Appweb
Appweb 是下一代嵌入式 Web 服务器,它天生是为嵌入式开发的,它的最初设计理念就是安全。Appweb 是一个快速、低内存使用量、标准库、方便的服务器。与其它嵌入式 Web 服务器相比,Appweb 最大特点就是功能多和高度的安全保障。
项目网址:https://www.embedthis.com/appweb/
GoAhead
GoAhead 是为嵌入式实时操作系统(RTOS)量身定制的 Web 服务器。GoAhead 是跨平台的服务器软件,可以稳定地运行在 Windows,Linux 和 Mac OS X 操作系统之上。GoAhead 开放源代码的,这意味着你可以随意修改 Web 服务器的功能。这款 Web 服务器非常小巧,它的 Win CE 版本编译后的大小还不到 60k,它的输出通常也是面向一些小屏幕设备。在性能方面,使用一颗 24MHz 的 68040 处理器,它的响应速度为 20 次/秒,使用 266MHz 的 Pentium 处理器可以达到 50 次/秒的响应速度。
项目网址:https://www.embedthis.com/goahead/
Althttpd
Althttpd 是一个开源、简单的 Web 服务器,目标是实现一个简单、安全和低资源使用率的 Web 服务。如果你阅读它的源代码,就会发现这个项目只有一个 althttpd.c 源文件。
Althttpd 的作者是大名鼎鼎的 SQLite 作者 D. Richard Hipp。