مثال: استضافة موقع ويب ينتجه مولدات المواقع الثابتة مثل Hugo و Zola و Jekyll و Hexo ، إلخ.
fast_mem_cache ) وتقديم الملفات الثابتة من الذاكرة. على جانب العميل ، يتم استخدام Cache-Control ، Etag ، Last-Modified .إذا كنت تتجه نحو الإنتاج أو تتوقع ارتفاعًا في حركة المرور إلى الخادم الخاص بك ، فاحصل على Binserve+ الذي يحمل حماية DDOS ، وحد الأسعار ، ومقاييس Prometheus للمراقبة مع جميع الميزات المذكورة أعلاه.
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 . (انظر التكوين ).
قم بتنزيل القابل للتنفيذ من الإصدارات أو التثبيت مع 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.pemيستخدم Binserve مقابض للالتقاط لأنه بسيط ومحرك templating الأكثر شهرة.
يمكنك تسجيل قوالب جزئية ومتغيرات القالب مثل هذا في ملف التكوين:
"template" : {
"partials" : {
"header" : " public/header.hbs "
},
"variables" : {
"app_name" : " Binserve "
}
}عام/رأس. 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 هو منصة مماثلة مما يعني أنه يمكنك تشغيله على أي نظام / أجهزة تشغيل رئيسية. إنه منخفض على استخدام وحدة المعالجة المركزية وتصميم الذاكرة حتى تتمكن من تشغيله على Raspberry Pi أو حتى هاتف Android الخاص بك:
مع تمكين fast_mem_cache ، يتم تخزين جميع الملفات في الذاكرة المعينة إلى فهرس الطريق والاستجابة للتهيئة ولن يؤدي أي قرص في وقت التشغيل. يوصى بإبقائه ممكّنًا حتى لو كان لديك مئات الملفات ، يقوم Binserve تلقائيًا بفرز الملفات الكبيرة لتتم قراءتها من القرص. فقط عندما تقدم الكثير من محتوى الوسائط الكبيرة ، يجب عليك تعطيل هذا الوضع.
تحت الغطاء ، يقوم Binserve بتخطيط الطرق وإعداد الاستجابة مع محتوى الملف ، ونوع mime ، metadata ، والحقول المطلوبة لاستخلاص العلامات Etag والعلامات Last-Modified مسبقًا ولن تؤدي أيًا من هذه العمليات في وقت التشغيل. عند التغييرات على أي من هذه الملفات ، يتم تنفيذ إعادة التحميل الساخن في مؤشر ترابط خلفية يقوم بتحديث حالة البرنامج من خلال إجراء تغييرات على hashmap المتزامنة التي تدير ذاكرة التخزين المؤقت ، والتغييرات فورية ولن تتسبب في أي وقت توقف أيضًا.
انظر المعايير
س: ما هو Binserve+؟
يتم تصنيع Binserve+ لمواقع الويب التي تهدف إلى تشغيل الإنتاج والتعامل مع كميات عالية من حركة المرور. إنه يأتي مع حماية DDOS ، وحد الأسعار ، ومقاييس Prometheus خارج الصندوق.
يمكنك الحصول على ترخيص مدى الحياة + إصلاحات أخطاء مدى الحياة مقابل 24 دولارًا/مرة واحدة.
يوجد هذا كوسيلة لدعم المشروع ، لا يحتوي على أي مفاتيح ترخيص أو نظام التحقق ، ستحصل على تنفيذيين مسبقًا لأنظمة التشغيل والبنية الرئيسية في أرشيف ZIP. (رخصة معهد ماساتشوستس للتكنولوجيا)
الحصول على binserve+.
طرق للمساهمة:
مرخصة بموجب ترخيص معهد ماساتشوستس للتكنولوجيا ، راجع الترخيص لمزيد من المعلومات.
لن تكون Binserve موجودة بدون هذه المشاريع المذهلة:
CompactString .شكرًا لك! ❤