ตัวอย่าง: โฮสต์เว็บไซต์ที่ผลิตโดยเครื่องกำเนิดไฟฟ้าแบบคงที่เช่น Hugo, Zola, Jekyll, Hexo ฯลฯ
fast_mem_cache ) และให้บริการไฟล์คงที่จากหน่วยความจำ ในฝั่งไคลเอ็นต์, Cache-Control , Etag และ Last-Modified จะถูกนำมาใช้หากคุณกำลังลดการผลิตหรือคาดว่าการรับส่งข้อมูลสูงไปยังเซิร์ฟเวอร์ของคุณรับ Binserve+ ซึ่งมี การป้องกัน DDOS การ จำกัด อัตรา และ การวัดโพร สำหรับการตรวจสอบพร้อมกับคุณสมบัติทั้งหมดข้างต้นในตัว
Checkout 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 (ดู การกำหนดค่า )
ดาวน์โหลด Ocenatable From releases หรือติดตั้งด้วย 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คำสั่งแรกโคลนที่เก็บนี้ลงในเครื่องในพื้นที่ของคุณและคำสั่งสองคำสุดท้ายเข้าสู่ไดเรกทอรีและสร้างแหล่งที่มาในโหมดการเปิดตัว
ไฟล์การกำหนดค่าเป็นไฟล์ JSON ที่เรียกว่า binserve.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 -โฮสต์/โดเมนที่มีพอร์ตที่ระบุสำหรับเว็บเซิร์ฟเวอร์ของคุณที่จะทำงาน--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 "
}
}สาธารณะ/header.hbs :
และใช้แบบนี้:
ซึ่งจะทำให้ลงไปที่:
เครื่องกำเนิดไฟฟ้าแบบคงที่ทุกตัวสร้างไฟล์ markdown/ template ของคุณลงในไดเรกทอรีซึ่งมักจะชื่อ 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/ครั้งหนึ่ง
สิ่งนี้มีอยู่เป็นวิธีการสนับสนุนโครงการไม่มีคีย์ใบอนุญาตหรือระบบการตรวจสอบใด ๆ (ใบอนุญาต MIT)
รับ Binserve+
วิธีการมีส่วนร่วม:
ได้รับใบอนุญาตภายใต้ใบอนุญาต MIT ดูใบอนุญาตสำหรับข้อมูลเพิ่มเติม
Binserve จะไม่มีอยู่จริงหากปราศจากโครงการที่น่าทึ่งเหล่านี้:
CompactString sขอบคุณ!