User Tools

Site Tools


zh-cn:doc:howto:http.uhttpd

Table of Contents

uHTTPd

uHTTPd 是一个 OpenWrt/LUCI 开发者从头编写的 Web 服务器。 它着力于实现一个稳定高效的服务器,能够满足嵌入式设备的轻量级任务需求,且能够与 OpenWrt 的配置框架 (UCI) 整合。默认情况下它被用于 OpenWrt 的 Web 管理接口 LuCI。当然,uHTTPd 也能提供一个常规 Web 服务器所需要的所有功能。

特性

uHTTPd 作为一个通用的 HTTP 服务,并不只满足于运行 OpenWrt 的 Web 管理界面,而是提供了媲美其他现代 Web 服务器的功能。这包括 TLS (SSL)、CGI 以及 Lua。uHTTPd 是单线程的,但是支持多个实例 (例如,支持监听多个端口,每个端口都可以使用独立的文档根目录以及其他功能)。

要使用 TLS (HTTPS 支持),需要 uhttpd-mod-tls 包。

与其他很多 Web 服务器相比, uHTTPd 支持进程内执行 Lua,可以提高 Lua CGI 脚本的执行效率。需要注意的是,LuCI,虽然依赖于 Lua,默认并不是以此方式配置的。

安装

uHTTPd 虽然是 OpenWrt 的标准 HTTP 服务器,但不包含在 OpenWrt 的主分支的发行版固件中。它的包名是 uhttpd。需要使用以下命令进行安装:

opkg update
opkg install uhttpd

此外,可以通过安装 LuCI Web 界面以将 uHTTPd 作为其一个依赖包来安装。此方法会同时安装 LuCI 管理 OpenWrt 设备所必要的包,请参考 LuCI 在 uHTTPd 上的配置。当然也可以用其他 Web 服务器来配置 Web 界面。

配置

uHTTPd 的配置自 OpenWrt 10.03 (Backfire) 开始便很好地与 OpenWrt 的 uci 集成在一起。它的 UCI 配置文件为 /etc/config/uhttpd。uHTTPd 直接依赖于此文件,不再需要其它通过 UCI 生成的配置文件 (然而其它很多程序都需要这样做,例如 Samba)。uHTTPd 通过 UCI 进行配置,请参考通过 UCI 配置 uHTTPd.

uHTTPd 提供了一个启动脚本 /etc/init.d/uhttpd 以控制服务的运行状态,并运行在 OpenWrt 启动时启动。

zh-cn/doc/howto/http.uhttpd.txt · Last modified: 2018/06/07 12:45 by tmomas