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

其源代码可在以下 git 存储库中找到:

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

uHTTPd is built by default (since r35295 in Jan2013) to support the usage of TLS (HTTPS) via a libustream-* SSL library (on top of an actual SSL library: mbedtls (formerly polarssl), openssl, wolfssl (formerly cyassl)). Previously the package uhttpd-mod-tls was required, but it is not needed any more as long as you have installed a libustream library variant. In Dec2016 luci-ssl installed by default libustream-mbedtls. 自2020 年 8 月起,luci-ssl 切换到 WolfSSL,默认安装 libustream-wolfssl。

与其他很多 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 启动时启动。

One could use the default installation for publishing files. A quick example is to disable the redirect to luci scripts.

mv /www/index.html /www/index.html.orig

Done this anything is shown as list of file and even symbolic links works.

This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies
  • Last modified: 2022/12/26 07:13
  • by heybrowhatsup