基于 Rust 与 Tokio 异步运行时,采用 Master-Worker 多进程 × 协程架构,
支持 HTTP/2、HTTP/3 (QUIC)、反向代理、负载均衡、WebSocket 代理、
IP 限流防护、Session 管理、多站点虚拟主机等企业级特性。
企业级 HTTP 服务器,30+ 功能开箱即用
高效服务网站根目录的静态文件,支持目录列表和默认页面配置。
基于域名的请求分发,支持在同一端口服务多个网站。
正则匹配 URL 重写规则,支持 ThinkPHP、Laravel、WordPress 等主流框架。
将请求转发到后端服务,支持路径前缀匹配和 WebSocket 代理。
支持 PHP、Python、Perl 等 CGI 脚本执行,可配置多解释器。
TLS 加密、ALPN 自动协商 HTTP/2、UDP/QUIC 的 HTTP/3 支持。
加权轮询分发请求到多个后端服务器,提升服务吞吐能力。
令牌桶算法每 IP 限流,CC 连接防护,自动封禁,IP 黑名单。
基于 Cookie 的内存 Session 管理,支持 TTL 过期自动清理。
RESTful 管理接口(配置读写、启停控制、状态监控),含鸿蒙 ArkTS SDK。
可配置的跨域资源共享支持,灵活控制来源、方法和头部。
自动轮转的访问日志,支持日期和大小切割,方便运维审计。
鸿蒙系统 & Linux 一键部署
下载安装脚本,一键完成所有环境配置,适合鸿蒙系统快速部署。
适合快速测试,一行命令直接启动 HTTP 服务。
适合生产环境,通过 TOML 配置文件完整管理所有站点。
从源码构建,适合自定义开发和交叉编译。
完整的命令行选项与配置指南
| 参数 | 简写 | 说明 |
|---|---|---|
--addr | -a | 绑定地址,如 127.0.0.1:8089 |
--root | -r | 网站根目录(默认 ./www) |
--config | -c | 配置文件路径 |
--threads | -t | 工作线程数(0=自动) |
--gen-config | — | 生成默认配置文件内容 |
--daemon | -d | 守护进程模式(后台运行) |
--interpreter | — | CGI 解释器路径 |
--cert | — | TLS 证书路径 |
--key | — | TLS 私钥路径 |
--http3-port | — | HTTP/3 (QUIC) 端口 |
--manage-auth | — | 管理 API 认证 Token |
--help | -h | 显示帮助信息 |
--version | -V | 显示版本信息 |
| 配置项 | 说明 | 默认值 |
|---|---|---|
bind | 绑定地址和端口 | 0.0.0.0:8080 |
root | 网站根目录 | ./www |
domains | 绑定的域名列表 | [] |
workers | Worker 进程数(0=CPU核数) | 0 |
cache_enabled | 是否启用缓存 | false |
cache_ttl | 缓存过期时间 | 1h |
cache_max_size | 缓存最大大小 | 100MB |
upload_max_size | 上传最大大小 | 10MB |
directory_listing | 是否启用目录列表 | false |
access_log | 访问日志路径 | — |
cors_origin | CORS 允许的源 | * |
allow_ip_access | 是否允许 IP 直连 | true |
| 信号 | 动作 |
|---|---|
SIGTERM | 优雅关闭 — 停止接受新连接,等待活跃请求完成(最多30s),然后退出 |
SIGHUP | 热重启 — 重新加载配置,逐个重启 Worker,零停机 |
SIGCHLD | Worker 崩溃自动恢复 — Master 自动 fork 新的 Worker 替换 |
进程 × 协程 — 双层并发架构
| 层 | 单位 | 并发方式 |
|---|---|---|
| 进程层 | Worker 进程 | fork() |
| 协程层 | async 任务 | tokio::spawn |
| 特性 | 进程 | 协程 |
|---|---|---|
| 创建开销 | ~10μs | ~10ns |
| 内存占用 | ~2MB | ~1KB |
| 隔离性 | 完全隔离 | 进程内共享 |
| 并发数量 | 数千 | 数十万 |
RESTful 管理接口 · 鸿蒙 ArkTS 客户端 SDK
| 方法 | 路径 | 说明 | 认证 |
|---|---|---|---|
| GET | /_ohos/config | 获取服务器完整配置 | Bearer Token |
| PUT | /_ohos/config | 更新配置(TOML 或 JSON) | |
| GET | /_ohos/status | 获取服务器运行状态 | |
| GET | /_ohos/metrics | 获取运行时指标 | |
| POST | /_ohos/pause | 暂停服务(新请求返回 503) | |
| POST | /_ohos/stop | 停止服务器 | |
| POST | /_ohos/restart | 热重启服务器 | Bearer Token |
| POST | /_ohos/start | 恢复服务 | Bearer Token |
ohosHttp 提供了完整的鸿蒙 ArkTS 管理 API 客户端 SDK,位于 examples/ohos-http-api.ets。
支持的方法:getConfig()、updateConfig()、getStatus()、getMetrics()、pause()、start()、restart()、stop()、isRunning()、isPaused()