#文件服务器 #单页应用 #服务器 #服务器端口 #文件存在 #简单服务器

应用程序 fserv

具有单页应用和代理支持的简单文件服务器。作为 Seed、React、Vue 等前端应用程序的开发服务器

2 个版本

0.1.1 2019 年 12 月 30 日
0.1.0 2019 年 12 月 30 日

#1302 in HTTP 服务器

MIT/Apache

22KB
134

fserv

fserv 是一个具有单页应用和代理支持的文件服务器,使用 actix 构建。

Crates.io License

许可证: MIT / Apache

安装

cargo install fserv

fserv 应该现在位于您的本地 cargo bin 目录中

用法

fserv -p <port> -i <index_file> -d <directory> -f <path>=<target> -f <path>=<target>

寻求帮助

fserv --help

示例

使用以下文件夹结构

base_dir
├── html_data/
│   └── index.html
└── build/
    ├── main.js
    └── style.css

使用以下命令

base_dir $ fserv -p 9000 -i html_data/index.html  -d build -f api=http://localhost:9010 -f ws=https://127.0.0.1:9020

这将启动服务器并监听 9000 端口,并服务 build 目录中的文件。对 /api 和 /ws 的请求将被代理

请求 响应
localhost:9000/ html_data/index.html 文件
localhost:9000/main.js build/main.js 文件
localhost:9000/style.css build/style.css 文件
localhost:9000/unknown.png html_data/index.html 文件,因为文件不存在
localhost:9000/user/info html_file/index.html 文件
localhost:9000/api/list 将请求代理到 https://127.0.0.1:9010/api/list
localhost:9000/ws/updates 将请求代理到 https://127.0.0.1:9020/ws/updates

配置

USAGE:
    fserv [FLAGS] [OPTIONS]

FLAGS:
    -h, --help
            Prints help information

    -n, --no-spa
            Disables spa mode. When spa mode is enabled an index.html (configured by -i flag) file is returned when a
            resourece is not found When spa mode is disabled a 404 error is returned when a resource is not found
    -V, --version
            Prints version information

OPTIONS:
    -d, --directory <directory>
            Directory to serve. Uses current directory by default [default: .]

    -i, --index-file <index-file>
            The file to server if when a resource is not found and spa mode is enabled [default: index.html]

    -p, --port <port>
            Sets the port [default: 8000]

    -f, --forward <proxies>...
            Optional path to forward as a key=value pair. Multiple entries can be added

    -w, --workers <workers>
            Sets the number of worker threads [default: 1]

依赖项

~26–37MB
~661K SLoC