uhttpd简介
uhttpd是openwrt系统默认的web服务器,是一个嵌入式轻量级的web服务器,支持https、ubus、cgi、webdav等特性。
ubus简介
Ubus为openwrt平台开发中的进程间通信提供了一个通用的框架。它让进程间通信的实现变得非常简单,并且ubus具有很强的可移植性,
openwrt很多服务支持ubus消息服务,netifd是openwrt管理网络的服务,通过netifd可以查询到接口状态、网卡统计数据、无线状态等。
为了减少web配置后端的操作,我们可以通过rpc机制直接获取到netifd以及其他ubus服务的消息,方便web前端开发,减少后端的工作量。
uhttpd支持ubus
为了支持rpc消息分发,uhttpd需要支持ubus,可以在uhttpd package中选择ubus后编译。
在openwrt根目录make menuconfig,进入uhttpd配置,开启uhttpd-mode-ubus
编译后升级
menuconfig选择ubus支持
web rpc请求
允许uhttpd,设置-u参数(rpc请求的前缀)
uhttpd -p 80 -u /ubus
本地测试请求脚本
#!/usr/bin/env bash
. /usr/share/libubox/jshn.sh
json_load "$(ubus call session create)"