دليل ترحيل منافس
الترحيل من NGINX إلى Webship بدون قطع مفاجئ.
حوّل كتل الخادم والمواقع والمصادر العلوية وفحوصات الصحة والفواصل الزمنية وملفات TLS إلى Webship TOML صارمة مع التحويل الأول على الحافة.
حدد حدود الترحيل قبل تغيير حركة المرور.
ابدأ بنقل السلوك الذي يمكن لـ Webship إعادة إنتاجه والتحقق منه فقط. اترك مصادقة التطبيق، واكتشاف الخدمة، والبرمجيات النصية، وقواعد التخزين المؤقت المتخصصة على الأصل الحالي حتى تمر بدائلها باختبارات شبيهة بالإنتاج.
ترجم أصغر مسار إنتاج أولاً.
تحدد القطعة المصدرية مفهوم الترحيل؛ تُظهر قطعة Webship الشكل المستهدف. استبدل المجالات النموذجية والعناوين والشهادات والحدود ومسارات الصحة بالقيم التي تم التحقق منها لبيئتك.
upstream app {
server 127.0.0.1:8080;
server 127.0.0.1:8081;
}
server {
listen 443 ssl http2;
server_name app.example.com;
location / { proxy_pass http://app; }
}listen = "0.0.0.0:443"
workers = 4
[reverse_proxy]
enabled = true
connect_timeout_ms = 2000
max_retries = 0
[reverse_proxy.protocols]
h1 = true
h2 = true
h3 = true
[reverse_proxy.tls]
cert = "/etc/letsencrypt/live/app.example.com/fullchain.pem"
key = "/etc/letsencrypt/live/app.example.com/privkey.pem"
[[reverse_proxy.routes]]
domain = "app.example.com"
path_prefix = "/"
upstreams = ["127.0.0.1:8080", "127.0.0.1:8081"]
load_balancing = "weighted-peak-ewma"
[[reverse_proxy.upstreams]]
address = "127.0.0.1:8080"
protocol = "http1"
health_check_path = "/health"
health_check_interval_ms = 5000
health_check_timeout_ms = 1000
[[reverse_proxy.upstreams]]
address = "127.0.0.1:8081"
protocol = "http1"
health_check_path = "/health"
health_check_interval_ms = 5000
health_check_timeout_ms = 1000
[[reverse_proxy.policies]]
name = "default"
hosts = []
path_prefixes = ["/"]
methods = []
max_body_bytes = 1048576
total_timeout_ms = 30000قم بربط المفاهيم، وليس الصياغة.
التوجيهات التقنية لا تتطابق دائمًا واحدًا لواحد. استخدم هذا الجدول لتحديد منطقة تكوين Webship المعادلة، ثم تحقق من التكوين الفعلي وسلوك التشغيل.
| المفهوم أو التوجيه الحالي | هدف تكوين Webship |
|---|---|
listen | listen + [reverse_proxy.protocols] |
server_name + location | [[reverse_proxy.routes]] |
proxy_pass / upstream | [[reverse_proxy.upstreams]] |
proxy_*_timeout | [[reverse_proxy.policies]] |
ssl_certificate + ssl_certificate_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