دليل ترحيل منافس
الترحيل من Bun.serve إلى Webship بدون قطع مفاجئ.
فصل كود التطبيق عن مهام الحافة: احتفظ بـ Bun كمصدر أصلي بينما يتولى Webship مسؤولية TLS، والتسليم الثابت، وHTTP/3، والحماية، وتوجيه الطلبات.
حدد حدود الترحيل قبل تغيير حركة المرور.
ابدأ بنقل السلوك الذي يمكن لـ Webship إعادة إنتاجه والتحقق منه فقط. اترك مصادقة التطبيق، واكتشاف الخدمة، والبرمجيات النصية، وقواعد التخزين المؤقت المتخصصة على الأصل الحالي حتى تمر بدائلها باختبارات شبيهة بالإنتاج.
ترجم أصغر مسار إنتاج أولاً.
تحدد القطعة المصدرية مفهوم الترحيل؛ تُظهر قطعة Webship الشكل المستهدف. استبدل المجالات النموذجية والعناوين والشهادات والحدود ومسارات الصحة بالقيم التي تم التحقق منها لبيئتك.
Bun.serve({
port: 443,
tls: { cert: Bun.file("cert.pem"), key: Bun.file("key.pem") },
routes: {
"/": new Response(Bun.file("./public/index.html")),
},
});listen = "0.0.0.0:443"
workers = 4
[[sites]]
domain = "app.example.com"
root = "/srv/app/public"
listen = "0.0.0.0:443"
cert = "/etc/letsencrypt/live/app.example.com/fullchain.pem"
key = "/etc/letsencrypt/live/app.example.com/privkey.pem"
[sites.protocols]
h1 = true
h2 = true
h3 = trueقم بربط المفاهيم، وليس الصياغة.
التوجيهات التقنية لا تتطابق دائمًا واحدًا لواحد. استخدم هذا الجدول لتحديد منطقة تكوين Webship المعادلة، ثم تحقق من التكوين الفعلي وسلوك التشغيل.
| المفهوم أو التوجيه الحالي | هدف تكوين Webship |
|---|---|
listener / virtual host | listen + [reverse_proxy.protocols] |
document root | [[sites]].root |
host matcher | [[reverse_proxy.routes]] |
certificate and private key | [reverse_proxy.tls] / [[sites]] cert + key |
استخدم تحويلًا من خمس خطوات يمكن الرجوع عنه.
احتفظ بالمستمع القديم جاهزًا حتى يجتاز Webship بوابات الصحة والقدرة والأمان والقابلية للمراقبة والاسترجاع على حركة مرور تمثيلية.
- 1
سلوك المراقبة للمخزون
تسجيل المستمعين، النطاقات، المسارات، المصادر الصاعدة، الشهادات، إعادة الكتابة، المصادقة، قواعد الذاكرة المؤقتة، الفحوصات الصحية، الحدود، والتكاملات التشغيلية.
- 2
ترجمة حد واحد
نقل مضيف أو مسار واحد إلى TOML الصارم. احتفظ بالوحدات الخاصة بالمورد والمنطق التطبيقي خلف Webship حتى يتم إثبات الوحدات البديلة المنفصلة.
- 3
التحقق محليًا ودون الاتصال
تشغيل --check-config و --print-effective-config، فحص النتيجة المحجوبة، التحقق من الصحة محليًا، واختبار TLS عبر كل من TCP وUDP عند تمكين HTTP/3.
- 4
حركة المرور الحقيقية للكناري
أرسل شريحة صغيرة من حركة المرور إلى Webship. قارن رموز الحالة، والرؤوس، والأجسام، والكمون، والصحة في المراحل الأعلى وسلوك الكاش، والسجلات، وقرارات الأمان.
- 5
الترويج مع الجاهزية للتراجع
زيادة الحركة في المراحل المقاسة. حافظ على الهدف السابق صحيًا وقابل للتوجيه فورًا حتى اجتياز نافذة المراقبة المتفق عليها وبوابات التحميل.
تحقق أولاً. استرجع عن طريق التوجيه، وليس عن طريق تحرير النسخة الحية.
قم بالتحقق من ملف المرشح، وفحص التكوين الفعال المحجوب، واستكشاف المستمع الخاص قبل تغيير حركة المرور. احتفظ بالثنائي القديم، والتكوين، والمستمع، ووجهة DNS أو موازن التحميل حتى يغلق نافذة المراقبة.
/usr/local/bin/webship --check-config --config /etc/webship/production.toml
/usr/local/bin/webship --print-effective-config --config /etc/webship/production.toml
curl --http3-only --insecure https://127.0.0.1:443/health