单一二进制,零运行时依赖。

静态、SPA、代理与 WebSocket —— 都由单个二进制提供。

servd 是一个自包含的开发、测试与轻量托管服务器 —— 可作为 http-server 的替代品,并原生支持反向代理、TLS 与自我监督的守护进程。

安装

npm install --global @qingyu31/servd
servd
$ servd --spa=./frontend --proxy=/api/=http://localhost:9000/api/ --ws=/ws=ws://localhost:9000/ws --port=8080servd 0.1.0 listening on 0.0.0.0:8080 (all IPv4 interfaces)Hosts: unrestricted  spa / -> /app/frontend  proxy /api -> http://localhost:9000/api/  proxy /ws -> ws://localhost:9000/ws

为什么选择 servd

零配置

无需配置文件、无需必选参数:直接运行 servd 即托管当前目录,其余能力均为按需的挂载参数。

静态与 SPA

将一个或多个目录挂载到路径前缀,并支持基于内容协商的 SPA 回退到 index.html。

HTTP 代理

将挂载前缀转发到上游 URL 并重写路径。最长挂载优先,代理优先于同挂载点的文件。

WebSocket 代理

通过与静态站点、API 相同的端口隧道转发 ws:// 与 wss:// 上游。

HTTPS 与 WSS

基于 PEM 证书与密钥终结 TLS 1.2+。同一端口通过 HTTP/1.1 提供 HTTPS 与 WSS。

CORS 与 Host 过滤

允许通配符或显式来源(不含凭证),并可限制接受哪些 Host 请求头。

守护进程模式

以分离方式运行,监督进程使用指数退避重启崩溃的 worker。

零依赖

通过 npm 以各平台包分发的单一静态二进制,托管服务无需 Node 运行时。

与 http-server、nginx 的对比

能力http-servernginxservd
零配置启动是(单一根目录)否(需要配置文件)是(托管当前目录)
配置文件与 reload仅参数nginx.conf + reload无配置文件,仅参数
多个 HTTP 代理挂载否(仅 --proxy 回退)是(location 块)是(--proxy 可重复)
代理路径重写是(rewrite)是(mount=target)
WebSocket 代理是(Upgrade 头)是(--ws)
SPA 回退基础是(try_files)是(内容协商)
CORS手动加头是(--cors)
TLS / HTTPS是(TLS 1.2+,HTTP/1.1)
带重启的后台守护进程是(master/worker)是(--daemon)
运行时与上手成本Node.js;低独立服务器;高无(单一静态二进制);低

使用场景

查看全部

来自博客

查看全部
servd

一个由单个 Go 二进制提供的轻量静态、SPA、HTTP 与 WebSocket 服务器。

产品

资源

© 2026 servd. 依据仓库中的 MIT 类许可证发布。 文档站由 SvelteKit 构建,并由 servd 托管。