3 个版本
0.1.2 | 2022年10月15日 |
---|---|
0.1.1 | 2022年9月30日 |
0.1.0 | 2022年9月28日 |
#1122 in HTTP服务器
1MB
555 行
包含 (WOFF字体,400KB) NanumBarunGothic.ttf.woff2,(WOFF字体,135KB) FiraSans-Medium.woff2,(WOFF字体,130KB) FiraSans-Regular.woff2,(WOFF字体,82KB) SourceSerif4-Bold.ttf.woff2,(WOFF字体,77KB) SourceSerif4-Regular.ttf.woff2,(WOFF字体,45KB) SourceCodePro-It.ttf.woff2 以及更多。
x-server-stats
x-server-stats是一个简单的Web服务器(和库),用于通过HTTP和WebSockets/SSE显示服务器统计信息或将其流式传输到其他系统。x-server(在x-server-stats中)不要与X窗口系统混淆。
入门指南
安装crate
$ cargo install x-server-stats
通过npm安装
您也可以通过npm安装x-server-stats。npm install命令将在您的路径中安装rust和x-server-stats二进制文件。如果您想通过npm快速开始,这很有用。但我们建议使用cargo install命令。npm包名为rust-x-server-stats
$ npm install -g rust-x-server-stats
安装Rust
您可以通过访问rust lang 网站中的说明来安装Rust。在网站上使用bash安装rust的命令如下,始终建议遵循官方网站上的说明。我们不推荐使用下面的命令,因为它可能不是最新版本,其他仓库也可能包含恶意bash脚本。
# Just for reference, please always head over to the official website for the instructions.
$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
安装PostgreSQL 14
您可以通过访问PostgreSQL 网站中的说明来安装PostgreSQL 14。我们使用PostgreSQL 14作为数据库,您也可以使用其他数据库,但我们目前不提供对其他数据库的支持(如果您有其他数据库的使用案例,请提出问题)。
# Just for reference, please always head over to the official homebrew/postgres website for the instructions for your OS.
$ brew install postgresql@14
设置环境变量
您需要导出以下环境变量以运行服务器。以PG
为前缀的环境变量用于PotsgreSQL数据库。目前,仅支持PostgreSQL存储统计信息。
export SERVER_ADDR=localhost:8082
export PG__USER=PG_USERNAME
export PG__PASSWORD=PG_PASSWORD
export PG__HOST=PG_HOST_URL
export PG__PORT=5432
export PG__DBNAME=PG_DB_NAME
export PG__POOL__MAX_SIZE=20
export BASE_ADDR=http://localhost:8082
构建(并运行)应用程序
在运行应用程序之前,您需要构建它。您可以通过运行以下命令来完成此操作:
$ cargo build --release
使用以下命令运行二进制文件
$ ./target/release/x-server-stats
直接运行应用程序
您可以通过运行以下命令直接运行应用程序
$ cargo run --release
使用Docker运行应用程序
首先,将Dockerfile.example
文件复制到Dockerfile
,并填写环境变量。然后运行以下命令构建和运行Docker镜像。
$ docker build -t x-server-stats .
$ docker run -p 8082:8082 x-server-stats
功能
服务器状态网页
待办事项 - 需要处理这个问题。该网页将仅使用HTML、CSS和JS构建,整个页面压缩后小于14KB(由于Linux服务器上的TCP initcwnd)。
请求节流
x-server-stats使用actix-governor根据IP地址节流传入请求。配置位于src/main.rs
,可以根据需要进行更改。如果您不想通过内部系统将过多的请求压倒服务器,节流是重要的。我们计划在未来使其可配置,这样您就不需要从源代码构建来更改配置。
依赖关系
~37–52MB
~1M SLoC