← تمام مائیگریشن گائیڈز

مقابل کمپنی کا مائگریشن گائیڈ

بغیر کسی بلائنڈ کٹ اوور کے Apache HTTP Server سے Webship میں منتقل کریں۔

VirtualHost، ProxyPass، TLS، وقت کی میعاد، اور اپ اسٹریم رویے کو سختی سے Webship TOML میں ترجمہ کریں، پھر کنٹرول شدہ مراحل میں Apache ایج لسٹنرز کو ریٹائر کریں۔

لاگو ہوتا ہے Webship 1.1.0 پرhttpd.conf

ٹریفک کو تبدیل کرنے سے پہلے مائیگریشن کی حد کو متعین کریں۔

صرف اس رویے کو منتقل کرنا شروع کریں جسے Webship دوبارہ پیدا اور تصدیق کر سکتا ہے۔ درخواست کی تصدیق، سروس کی دریافت، اسکرپٹ، اور مخصوص کیش قواعد کو موجودہ ماخذ پر چھوڑ دیں جب تک کہ ان کے متبادل پیداواری جیسے ٹیسٹ پاس نہ کر لیں۔

سب سے چھوٹے پروڈکشن راستے کو پہلے ترجمہ کریں۔

ماخذ fragment migration کے تصور کی نشاندہی کرتا ہے؛ Webship fragment ہدف کی شکل دکھاتا ہے۔ example domains، addresses، certificates، limits، اور health paths کو اپنی ماحول کیلئے validation شدہ اقدار سے تبدیل کریں۔

نمائندہ Apache HTTP Server ترتیب
<VirtualHost *:443>
  ServerName app.example.com
  ProxyPass / http://127.0.0.1:8080/
  ProxyPassReverse / http://127.0.0.1:8080/
</VirtualHost>
متوازی Webship TOML
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 + VirtualHostlisten + [reverse_proxy.protocols]
ServerName + ProxyPass path[[reverse_proxy.routes]]
ProxyPass target[[reverse_proxy.upstreams]]
ProxyPass timeout[[reverse_proxy.policies]]
SSLCertificateFile + SSLCertificateKeyFile[reverse_proxy.tls] / [[sites]] cert + key

ایک قابلِ واپسی پانچ مرحلوں والا کٹ اوور استعمال کریں۔

پرانا سننے والا تیار رکھیں جب تک کہ Webship نمائندہ ٹریفک پر درستگی، صلاحیت، سیکیورٹی، قابلِ مشاہدہ اور رول بیک گیٹس سے نہ گزر جائے۔

  1. 1

    انفینٹوری مشاہدہ شدہ رویہ

    سننے والوں، ڈومینز، راستے، اپ اسٹریمز، سرٹیفکیٹس، ری رائٹس، توثیق، کیش قوانین، صحت کے پروبز، حدود، اور عملیاتی انضمامات ریکارڈ کریں۔

  2. 2

    ایک حد ترجمہ کریں

    ایک ہوسٹ یا روٹ کو سخت TOML میں منتقل کریں۔ سپلائر مخصوص ماڈیولز اور ایپلیکیشن لاجک کو Webship کے پیچھے رکھیں جب تک کہ الگ متبادل ثابت نہ ہو جائیں۔

  3. 3

    آف لائن اور مقامی طور پر تصدیق کریں

    --check-config اور --print-effective-config چلائیں، حاشیہ دار نتیجہ کا معائنہ کریں، مقامی طور پر صحت کا جائزہ لیں، اور TLS کو TCP اور UDP دونوں پر استعمال کریں جب HTTP/3 فعال ہو۔

  4. 4

    کینری حقیقی ٹریفک

    Webship کو چھوٹا، قابل مشاہدہ ٹریفک سلائس بھیجیں۔ اسٹیٹس کوڈز، ہیڈرز، باڈیز، لیٹینسی، اپ اسٹریم صحت، کیش رویے، لاگز، اور سیکیورٹی فیصلوں کا موازنہ کریں۔

  5. 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