示例:托管一个由Hugo,Zola,Jekyll,Hexo等静态网站生成的网站。
fast_mem_cache )在运行时最小化I/O操作而实现的,并从内存中提供静态文件。在客户端,使用Cache-Control , Etag和Last-Modified 。如果您喜欢生产或期望服务器流量较高,请获得具有DDOS保护,限制速率和Prometheus指标的Binserve+,以进行监视以及上述所有功能内置功能。
结帐Binserve Plus!
阅读常见问题解答以获取更多详细信息。
从发行版中下载为您的操作系统的可执行文件,然后运行它:
mkdir mywebsite/
binserve在第一次运行中,它将创建配置文件和一个入门样板供您开始。
_ _
| |_|_|___ ___ ___ ___ _ _ ___
| . | | |_ -| -_| _| | | -_|
|___|_|_|_|___|___|_| _/|___| 0.2.0
[INFO] Build finished in 295 μs ⚡
[SUCCESS] Your server is up and running at 127.0.0.1:1337
请访问http://127.0.0.0:1337/,您将获得Binserve的索引页面。
现在,您需要做的就是编辑binserve.json文件。 (请参阅配置)。
从发行版中下载可执行文件或使用cargo安装:
cargo install --git https://github.com/mufeedvh/binserve.git安装生锈/货物
先决条件:
git clone https://github.com/mufeedvh/binserve.git
cd binserve/
RUSTFLAGS= " -C target-cpu=native " cargo build --release第一个命令将该存储库夹在您的本地计算机中,最后两个命令进入目录并在发布模式下构建源。
配置文件是一个称为binserve.json的JSON文件,由可执行文件自动生成。配置Binserve非常直接,因为配置字段是自称的:
而且这里的所有值都有安全的默认值,因此您不必指定不需要的值。
提示:很可能您不需要所有配置字段,请查看有关如何使用单个目录的静态站点生成器示例。
{
"server" : {
"host" : " 127.0.0.1:1337 " ,
"tls" : {
"host" : " 127.0.0.1:443 " ,
"enable" : false ,
"key" : " key.pem " ,
"cert" : " cert.pem "
}
},
"routes" : {
"/" : " public/index.html " ,
"/usage" : " public/usage.hbs " ,
"/blog" : " public/blog/ "
},
"static" : {
"directory" : " public/assets " ,
"served_from" : " /assets " ,
"error_pages" : {
"404" : " public/404.html "
}
},
"template" : {
"partials" : {
"header" : " public/header.hbs "
},
"variables" : {
"app_name" : " Binserve "
}
},
"config" : {
"enable_hot_reload" : true ,
"fast_mem_cache" : true ,
"enable_cache_control" : true ,
"enable_directory_listing" : true ,
"minify_html" : false ,
"follow_symlinks" : false ,
"enable_logging" : false
},
"insert_headers" : {
"x-greetings" : " hellooo! "
}
}您也可以使用命令行参数覆盖配置:
-c/--cert - 域TLS证书的路径。-k/--key - 域TLS键的路径。-h/--host - 带有指定端口的主机/域供您的Web服务器运行。--host 127.0.0.1:1337或--host zombo.com 对TLS有内置的支持:
{
"server" : {
"host" : " 127.0.0.1:1337 " ,
"tls" : {
"host" : " 127.0.0.1:443 " ,
"enable" : true ,
"key" : " key.pem " ,
"cert" : " cert.pem "
}
}
}可以使用openssl生成密钥和证书:
# generate pkcs#10 key+cert (PEM):
$ openssl req -x509 -newkey rsa:4096 -keyout key_pkcs10.pem -out cert.pem -sha256 -days 36
# convert the private key to PKCS#8 (PEM):
$ openssl pkcs8 -topk8 -inform PEM -outform PEM -nocrypt -in key_pkcs10.pem -out key.pemBinserve使用车把来模板,因为它很简单,也是最常见的模板引擎。
您可以在配置文件中注册类似的部分模板和模板变量:
"template" : {
"partials" : {
"header" : " public/header.hbs "
},
"variables" : {
"app_name" : " Binserve "
}
}public/header.hbs :
并这样使用:
这将归结为:
每个静态生成器将您的标记/模板文件构建到一个目录中,通常命名为public/ ,您要做的就是该目录作为索引路由:
{
"server" : {
"host" : " 127.0.0.1:1337 " ,
"tls" : {
"host" : " 127.0.0.1:443 " ,
"enable" : false ,
"key" : " key.pem " ,
"cert" : " cert.pem "
}
},
"routes" : {
"/" : " public/ "
}
}就是这样!
如前所述,您无需指定所有字段,将应用安全默认值! ?
将目录作为路由是一个有意的设计,因此您可以轻松托管多个静态站点生成器输出。假设您有一个投资组合,因为主页和博客是由不同的模板制成的。您可以做:
"routes" : {
"/" : " my_zola_portfolio/public/ " ,
"/blog" : " my_hugo_blog/public/ "
}Binserve是跨平台,这意味着您可以在任何主要的操作系统 /设备上运行它。它的CPU使用率和内存足迹较低,因此您可以在Raspberry Pi甚至Android手机上运行它:
启用了fast_mem_cache ,所有文件都会存储在内存中,映射到其路由索引和初始化响应,并且不会在运行时执行任何磁盘读取。建议将其启用,即使您有数百个文件,binserve也会自动从磁盘中读取大型文件。只有当您提供大量大型媒体内容时,才能禁用此模式。
在引擎盖下,Binserve将路由映射并使用文件的内容, mime类型, metadata和所需的字段来准备响应,以提出Etag和Last-Modified标签,并且不会在运行时执行任何这些操作。更改这些文件时,在背景线程中执行热重载,该线程通过更改程序状态来更新程序状态,以更改管理缓存的并发hashmap,更改是即时的,也不会导致任何停机时间。
请参阅Benchmarks.md
问:什么是Binserve+?
Binserve+是针对旨在运行生产和处理大量流量的网站的。它带有DDOS保护,限制速率和普罗米修斯指标。
您将获得终身许可证 +终身错误修复,价格为$ 24/一次。
这是作为支持该项目的一种方式,它没有任何许可密钥或验证系统,您可以在ZIP档案中为主要操作系统和架构提供预编译的可执行文件。 (麻省理工学院许可证)
获取Binserve+。
贡献方式:
根据MIT许可证获得许可,请参阅许可证以获取更多信息。
如果没有这些惊人的项目,Binserve就不会存在:
CompactString s。谢谢你! ❤️