web服务器、文件共享服务器:simple-http-server使用教程

介绍

simple-http-server 是一款基于 Rust 开发的轻量级跨平台静态文件服务器,支持目录浏览、文件上传、HTTPS 等功能,适合本地开发调试、局域网文件共享和快速静态站点部署。

一、核心特性

  • 跨平台:支持 Windows、macOS、Linux
  • 零配置:一条命令启动,支持目录浏览与面包屑导航
  • 功能丰富:Gzip 压缩、HTTPS、HTTP 基本认证、文件上传、单页应用重写
  • 性能可靠:多线程支持,内存占用低,兼容 HTTP 缓存与断点续传

二、安装方式

1. 下载预编译二进制(无需 Rust)

从 GitHub 发布页 下载对应系统的二进制文件,解压后可直接使用,建议添加到系统 PATH 以全局调用。

2. 安装 Rust 环境(推荐)

# 安装 Rust(国内可使用中科大镜像加速)
curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain stable
# 配置环境变量(重启终端或执行)
source $HOME/.cargo/env
安装 simple-http-server
# 从 crates.io 安装
cargo install simple-http-server
# 验证安装
simple-http-server --help

三、快速上手

1. 基础启动

# 进入要共享的目录
cd /path/to/your/files
# 启动服务(默认端口 8000,绑定 0.0.0.0)
simple-http-server

访问地址:http://本机IP:8000,可浏览并下载目录中的所有文件。

2. 常用自定义启动命令

需求 命令 说明
指定端口 simple-http-server -p 8080 监听 8080 端口
指定绑定地址 simple-http-server --ip 127.0.0.1 仅本地访问,更安全
启用 index.html simple-http-server -i 优先访问目录下的 index.html
服务指定目录 simple-http-server /path/to/root 以指定目录为根目录
后台运行 nohup simple-http-server -p 80 & 关闭终端后仍运行,日志输出到 nohup.out

四、进阶用法

1. 性能优化

# 启用 Gzip 压缩(针对指定类型)
simple-http-server --compress=js,css,html,json
# 调整线程数(默认 3 线程)
simple-http-server -t 8
# 禁用缓存(适合开发调试)
simple-http-server --nocache

压缩可减少约 60% 传输体积,提升大文件加载速度。

2. 安全配置

# 启用 HTTP 基本认证
simple-http-server --auth username:password
# 启用 HTTPS(需 PKCS#12 格式证书)
simple-http-server --cert /path/to/cert.p12 --certpass 证书密码
# 启用 CORS(允许跨域请求)
simple-http-server --cors

⚠️ 认证仅适用于测试环境,生产环境建议使用更安全的鉴权方案。

3. 单页应用支持

# 缺失文件时重写到 index.html(适合 Vue/React 等 SPA)
simple-http-server --try-file index.html

4. 文件上传

# 启用文件上传(默认大小限制 8MB)
simple-http-server --upload
# 自定义上传大小限制(单位:字节)
simple-http-server --upload-size-limit 10485760  # 10MB

启用后需携带 CSRF Token 上传,保障安全性。

五、完整示例组合

# 生产级配置:后台运行、指定端口、启用 index、HTTPS、认证、压缩
nohup simple-html-server \
  -p 443 \
  -i \
  --cert /etc/ssl/certs/server.p12 \
  --certpass your-cert-pass \
  --auth admin:123456 \
  --compress=js,css,html \
  /var/www/html &

六、常见问题与注意事项

  1. 端口占用:若端口被占用,更换 -p 参数指定其他端口
  2. 权限问题:确保服务目录有可读权限,上传目录需可写
  3. 安全提醒:禁止在生产环境直接暴露未认证的 simple-http-server,存在未授权访问风险
  4. 版本更新:定期执行 cargo install --force simple-http-server 更新至最新版

七、命令速查

simple-http-server --help  # 查看完整帮助
simple-http-server --version  # 查看版本
simple-http-server --silent  # 静默模式,不输出日志
simple-http-server --nosort  # 禁用目录排序

原文出处:/show_1GW38Q94ItZo.html