راهنمای مهاجرت رقیب
مهاجرت از Microsoft IIS به Webship بدون تغییر ناگهانی.
جایگزین کردن بایندینگهای IIS، قوانین پروکسی ARR، مسیریابی URL Rewrite و TLS لبهای با Webship در حالی که وابستگیهای برنامه ویندوز پشت آن باقی بمانند.
مرز مهاجرت را پیش از تغییر ترافیک تعریف کنید.
با انتقال فقط رفتاری که Webship میتواند بازتولید و تأیید کند شروع کنید. احراز هویت برنامه، کشف سرویس، اسکریپتها، و قوانین کش تخصصی را روی منبع موجود رها کنید تا زمانی که جایگزینهایشان آزمونهای محیط تولید را پشت سر بگذارند.
ابتدا کوچکترین مسیر تولید را ترجمه کنید.
قطعه منبع مفهوم مهاجرت را شناسایی میکند؛ قطعه Webship شکل هدف را نشان میدهد. دامنهها، آدرسها، گواهینامهها، محدودیتها و مسیرهای سلامتی نمونه را با مقادیری که برای محیط شما تایید شدهاند جایگزین کنید.
<rewrite>
<rules>
<rule name="ReverseProxy" stopProcessing="true">
<match url="(.*)" />
<action type="Rewrite" url="http://127.0.0.1:8080/{R:1}" />
</rule>
</rules>
</rewrite>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 |
|---|---|
IIS binding | listen + [reverse_proxy.protocols] |
URL Rewrite rule | [[reverse_proxy.routes]] |
ARR rewrite URL | [[reverse_proxy.upstreams]] |
IIS certificate binding | [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