#web-server #fcgi #config-file

app flash_rust_ws

支持TLS、文件、FCGI、DAV和Websocket的通用Web服务器

7个版本

0.5.0 2024年5月6日
0.4.4 2023年10月6日
0.4.3 2023年5月13日
0.4.2 2023年4月17日
0.3.3 2021年9月3日

#47 in HTTP服务器

Download history 122/week @ 2024-05-03 11/week @ 2024-05-10 6/week @ 2024-05-17 1/week @ 2024-05-24

404 每月下载量

AGPL-3.0

310KB
8K SLoC

Project Status: Active – The project has reached a stable, usable state and is being actively developed. GitHub GitHub Workflow Status

用Rust编写的Web服务器。基于快速Hyper

使用方法

安装

安装cargo 然后执行: cargo install flash_rust_ws (稳定版) cargo install --git https://github.com/User65k/flash_rust_ws.git (最新版本)

运行

创建一个配置文件并执行二进制文件 ☺️

查看Wiki以获取有关配置文件的帮助。

您至少需要一个包含虚拟主机挂载路径

最小示例

["example.com"]
ip = "127.0.0.1:80"
dir = "/var/www/"

Let's Encrypt示例

["example.com"]
ip = "[::]:443"
validate_server_name = true
dir = "/var/www/"
tls.host.ACME = {uri="https://acme-staging-v02.api.letsencrypt.org/directory",cache_dir=".",contact=["mailto:[email protected]"]}

目标

  • 易于配置和安全的默认值
  • 轻量级
  • 速度

功能

  • 虚拟主机
  • "挂载点"用于服务文件
  • FastCGI
  • HTTPS
    • 每个vHost / SNI的证书
    • 每个密钥类型(EC、ED、RSA)的证书
    • ACME-TLS
  • HTTP2
  • WebDAV
  • 反向代理
  • Websocket
  • 可自定义的日志记录
  • 安全
    • HTTP用户认证:摘要 - (由于Firefox而使用MD5,但总比没有好)
    • Systemd套接字激活
    • DoS保护
      • 不受Sloloris的影响
      • 限制连接数?
      • 速率?
      • 最小速度?
    • 没有默认文件
    • 没有用户的情况下没有DAV?
    • 没有文件夹列表(除了DAV)
    • 默认推荐http头
    • 没有路径遍历 :-)
    • 仅使用基于允许值的过滤器
    • 仅https?
    • 避免BEAST和CRIME
    • 仅当被指示时才跟随符号链接
  • SCGI

依赖关系

~13–25MB
~383K SLoC