Contoh: Hosting situs web yang diproduksi oleh generator situs statis seperti Hugo, Zola, Jekyll, Hexo, dll.
fast_mem_cache diaktifkan) dan menyajikan file statis dari memori. Di sisi klien, Cache-Control , Etag , dan Last-Modified digunakan.Jika Anda bergantung pada produksi atau mengharapkan lalu lintas tinggi ke server Anda, dapatkan Binserve+ yang memiliki perlindungan DDOS , pembatasan tingkat , dan metrik Prometheus untuk pemantauan bersama dengan semua fitur di atas bawaan.
Checkout Binserve Plus!
Baca FAQ untuk detail lebih lanjut.
Unduh yang dapat dieksekusi untuk OS Anda dari rilis , lalu jalankan saja:
mkdir mywebsite/
binservePada menjalankan pertama, ini akan membuat file konfigurasi dan starter boilerplate untuk Anda mulai.
_ _
| |_|_|___ ___ ___ ___ _ _ ___
| . | | |_ -| -_| _| | | -_|
|___|_|_|_|___|___|_| _/|___| 0.2.0
[INFO] Build finished in 295 μs ⚡
[SUCCESS] Your server is up and running at 127.0.0.1:1337
Pergi ke http://127.0.0.0:1337/ dan Anda akan disambut dengan halaman indeks Binserve.
Sekarang yang perlu Anda lakukan adalah mengedit file binserve.json . (Lihat Konfigurasi ).
Unduh yang dapat dieksekusi dari rilis atau instal dengan cargo :
cargo install --git https://github.com/mufeedvh/binserve.gitPasang karat/kargo
Prasyarat:
git clone https://github.com/mufeedvh/binserve.git
cd binserve/
RUSTFLAGS= " -C target-cpu=native " cargo build --releasePerintah pertama mengkloning repositori ini ke dalam mesin lokal Anda dan dua perintah terakhir memasuki direktori dan membangun sumber dalam mode rilis.
File konfigurasi adalah file JSON yang disebut binserve.json yang dihasilkan secara otomatis oleh yang dapat dieksekusi. Mengkonfigurasi Binserve cukup lurus karena bidang konfigurasi sudah jelas:
Dan semua nilai di sini memiliki default yang aman sehingga Anda tidak perlu menentukan yang tidak Anda butuhkan.
Kiat : Kemungkinan besar Anda tidak akan membutuhkan semua bidang konfigurasi, checkout contoh generator situs statis tentang cara melayani satu direktori.
{
"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! "
}
}Anda dapat mengganti konfigurasi dengan argumen baris perintah juga:
-c/--cert -Jalur ke sertifikat TLS untuk domain Anda.-k/--key -Jalur ke tombol TLS untuk domain Anda.-h/--host -Host/domain dengan port yang ditentukan untuk dijalankan oleh webserver Anda.--host 127.0.0.1:1337 atau --host zombo.com Ada dukungan bawaan untuk TLS:
{
"server" : {
"host" : " 127.0.0.1:1337 " ,
"tls" : {
"host" : " 127.0.0.1:443 " ,
"enable" : true ,
"key" : " key.pem " ,
"cert" : " cert.pem "
}
}
} Kunci dan sertifikat dapat dihasilkan dengan 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 menggunakan setang untuk templating karena itu sederhana dan mesin templating yang paling dikenal.
Anda dapat mendaftarkan variabel parsial dan variabel template seperti ini di file konfigurasi:
"template" : {
"partials" : {
"header" : " public/header.hbs "
},
"variables" : {
"app_name" : " Binserve "
}
}Public/Header.hbs :
Dan gunakan seperti ini:
Yang akan merender ke:
Setiap generator statis membangun file markdown/ template Anda ke dalam direktori, biasanya bernama public/ , yang harus Anda lakukan adalah menunjukkan direktori itu sebagai rute indeks:
{
"server" : {
"host" : " 127.0.0.1:1337 " ,
"tls" : {
"host" : " 127.0.0.1:443 " ,
"enable" : false ,
"key" : " key.pem " ,
"cert" : " cert.pem "
}
},
"routes" : {
"/" : " public/ "
}
}Itu saja!
Seperti yang disebutkan sebelumnya, Anda tidak perlu menentukan semua bidang, default aman akan diterapkan! ?
Menunjuk direktori sebagai rute adalah desain yang disengaja sehingga Anda dapat meng -host beberapa output generator situs statis dengan mudah. Katakanlah Anda memiliki portofolio karena beranda dan blog Anda dibuat dengan template yang berbeda. Anda bisa melakukannya:
"routes" : {
"/" : " my_zola_portfolio/public/ " ,
"/blog" : " my_hugo_blog/public/ "
}Binserve adalah cross-platform yang berarti Anda dapat menjalankannya pada sistem / perangkat operasi utama apa pun. Ini rendah pada penggunaan CPU dan jejak memori sehingga Anda dapat menjalankannya di Raspberry Pi Anda atau bahkan ponsel Android Anda:
Dengan diaktifkan fast_mem_cache , semua file disimpan di dalam memori yang dipetakan ke indeks rute dan responsnya pada inisialisasi dan tidak akan melakukan pembacaan disk saat runtime. Dianjurkan agar tetap diaktifkan bahkan jika Anda memiliki ratusan file, Binserve secara otomatis mengurutkan file besar untuk dibaca dari disk. Hanya ketika Anda melayani banyak konten media besar, Anda harus menonaktifkan mode ini.
Di bawah kap, Binserve memetakan rute dan menyiapkan respons dengan konten file, tipe mime , metadata , dan bidang yang diperlukan untuk mendapatkan tag Etag dan Last-Modified dan tidak akan melakukan operasi ini saat runtime. Setelah perubahan pada salah satu file ini, Hot Reload dijalankan di utas latar belakang yang memperbarui status program dengan membuat perubahan pada hashmap bersamaan yang mengelola cache, perubahannya instan dan tidak akan menyebabkan downtime apa pun.
Lihat Benchmarks.md
T: Apa itu Binserve+?
Binserve+ dibuat untuk situs web yang dimaksudkan untuk berjalan dalam produksi dan menangani lalu lintas dalam jumlah tinggi. Muncul dengan perlindungan DDOS, pembatasan laju, dan metrik Prometheus di luar kotak.
Anda mendapatkan lisensi seumur hidup + perbaikan bug seumur hidup seharga $ 24/sekali.
Ini ada sebagai cara untuk mendukung proyek, tidak memiliki kunci lisensi atau sistem verifikasi, Anda mendapatkan executable yang telah dikompilasi sebelumnya untuk sistem operasi utama dan arsitektur dalam arsip ZIP. (Lisensi MIT)
Dapatkan Binserve+.
Cara berkontribusi:
Lisensi di bawah lisensi MIT, lihat lisensi untuk informasi lebih lanjut.
Binserve tidak akan ada tanpa proyek luar biasa ini:
CompactString s.Terima kasih! ❤️