示例:託管一個由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。謝謝你! ❤️