Skip to content

Static Web Server

Office Web - Source - Docker Image - Document


Static Web Server(或 SWS 缩写)是一种小型且快速的生产就绪型 Web 服务器,适用于提供静态 Web 文件或资产。

它专注于轻量级和易于使用的原则,同时保持由 Rust 编程语言提供支持的高性能和安全性。

它基于 Hyper 和 Tokio 运行时编写,提供并发和异步网络功能以及最新的 HTTP/1 - HTTP/2 实现。

跨平台,适用于 Linux、macOS、Windows、FreeBSD、NetBSD、Android、Docker 和 Wasm(通过 Wasmer)。

环境变量

TIP

环境变量与命令行参数等效,命令行参数优先级更高。 完整文档请参考 官方文档

自定义变量

变量说明默认值
TZ时区设置Asia/Shanghai
SERV_PORT宿主机端口映射80

服务器基础

变量说明默认值
SERVER_HOST监听地址 (如 127.0.0.1::1)[::]
SERVER_PORT监听端口80
SERVER_ROOT静态文件根目录./public
SERVER_INDEX_FILES索引文件列表,按顺序匹配index.html
SERVER_GRACE_PERIOD优雅关闭等待时间 (秒,最大 255)0
SERVER_CONFIG_FILETOML 配置文件路径./sws.toml

Unix Socket

变量说明默认值
SERVER_UNIX_SOCKETUnix Domain Socket 路径 (替代 TCP)空 (禁用)
SERVER_UNIX_SOCKET_MODESocket 文件权限 (八进制,如 660)umask
SERVER_UNIX_SOCKET_FORCE强制覆盖已有 Socket 文件false

工作线程

变量说明默认值
SERVER_THREADS_MULTIPLIER工作线程倍数 (CPU 数 × n)1
SERVER_MAX_BLOCKING_THREADS最大阻塞线程数512

日志

变量说明默认值
SERVER_LOG_LEVEL日志级别 (error, warn, info, debug, trace)error
SERVER_LOG_FORMAT日志格式 (json, pretty)json
SERVER_LOG_WITH_ANSI启用 ANSI 颜色 (仅 pretty 格式)false
SERVER_LOG_FILE日志文件路径 (追加写入)空 (禁用)
SERVER_LOG_REMOTE_ADDRESS记录远程地址false
SERVER_LOG_X_REAL_IP记录 X-Real-IP 头false
SERVER_LOG_FORWARDED_FOR记录 X-Forwarded-For 头false
SERVER_TRUSTED_PROXIES信任的代理 IP 列表 (逗号分隔)""

错误页面

变量说明默认值
SERVER_ERROR_PAGE_404404 错误页面路径./404.html
SERVER_ERROR_PAGE_50X50x 错误页面路径./50x.html
SERVER_FALLBACK_PAGE回退页面路径 (用于客户端路由)空 (禁用)

TLS / HTTP2

变量说明默认值
SERVER_TLS启用 TLS/HTTPSfalse
SERVER_TLS_CERTTLS 证书路径空 (禁用)
SERVER_TLS_KEYTLS 私钥路径空 (禁用)
SERVER_HTTP2启用 HTTP/2 (需先启用 TLS)false

HTTPS 重定向

变量说明默认值
SERVER_HTTPS_REDIRECTHTTP 重定向到 HTTPS (需启用 TLS)false
SERVER_HTTPS_REDIRECT_HOSTHTTPS 主机名或 IPlocalhost
SERVER_HTTPS_REDIRECT_FROM_PORTHTTP 重定向监听端口80
SERVER_HTTPS_REDIRECT_FROM_HOSTS允许重定向的主机列表localhost

CORS

变量说明默认值
SERVER_CORS_ALLOW_ORIGINS允许的来源列表 (* 表示全部)空 (禁用)
SERVER_CORS_ALLOW_HEADERS允许的请求头origin, content-type, authorization
SERVER_CORS_EXPOSE_HEADERS暴露的响应头origin, content-type

压缩

变量说明默认值
SERVER_COMPRESSION启用 Gzip/Deflate/Brotli/Zstd 压缩true
SERVER_COMPRESSION_LEVEL压缩级别 (fastest, default, best)default
SERVER_COMPRESSION_STATIC直接提供预压缩文件 (.gz/.br/.zst)true

目录列表

变量说明默认值
SERVER_DIRECTORY_LISTING启用目录列表false
SERVER_DIRECTORY_LISTING_ORDER排序方式 (0-5,见下方说明)6
SERVER_DIRECTORY_LISTING_FORMAT列表格式 (html, json)html
SERVER_DIRECTORY_LISTING_DOWNLOAD启用下载格式 (targz)空 (禁用)

排序代码:0 Name升序, 1 Name降序, 2 时间升序, 3 时间降序, 4 大小升序, 5 大小降序, 6 无序

安全与缓存

变量说明默认值
SERVER_SECURITY_HEADERS启用安全头 (需启用 TLS)true
SERVER_CACHE_CONTROL_HEADERS启用缓存控制头true
SERVER_ETAG启用 ETag 和条件请求true
SERVER_BASIC_AUTHBasic 认证 (user-id:password,BCrypt)空 (禁用)

行为控制

变量说明默认值
SERVER_REDIRECT_TRAILING_SLASH目录 URI 尾斜杠重定向 (308)true
SERVER_INCLUDE_HIDDEN包含隐藏文件 (dotfiles)false
SERVER_FOLLOW_SYMLINKS跟随符号链接false
SERVER_ACCEPT_MARKDOWNMarkdown 内容协商false
SERVER_TEXT_CHARSET文本响应默认 charsettrue

健康检查与指标

变量说明默认值
SERVER_HEALTH启用 /health 端点false
SERVER_METRICS启用 Prometheus /metrics 端点false

维护模式

变量说明默认值
SERVER_MAINTENANCE_MODE启用维护模式false
SERVER_MAINTENANCE_MODE_STATUS维护模式 HTTP 状态码503
SERVER_MAINTENANCE_MODE_FILE维护模式 HTML 文件空 (默认消息)

Windows

变量说明默认值
SERVER_WINDOWS_SERVICE以 Windows 服务运行false

Released under the Apache-2.0 License.