מדריך הגירה של מתחרה
העבר מ-Pingora ל-Webship ללא סגירה עיוורת.
החלף שירות קצה מותאם אישית Pingora בנתיבי Webship מוגדרים שבהם TLS סטנדרטי, פרוקסי, בריאות, מדיניות ותצפית מספיקה.
הגדר את גבול ההעברה לפני שינוי התעבורה.
התחל על ידי העברת ההתנהגות שהWebship בלבד יכול לשכפל ולאמת. השאר את אימות היישום, גילוי השירותים, הסקריפטים וכללי המטמון המיוחדים במקור הקיים עד להצלחת הבדיקות בסביבת ייצור.
תרגם את מסלול הייצור הקטן ביותר תחילה.
קטע המקור מזהה את רעיון ההגירה; קטע Webship מראה את הצורה היעד. החלף דומיינים לדוגמה, כתובות, תעודות, מגבלות ודרכי בריאות בערכים שנבדקו עבור הסביבה שלך.
let mut server = Server::new(None)?;
server.bootstrap();
let mut proxy = http_proxy_service(
&server.configuration, MyProxy::new("127.0.0.1:8080"),
);
proxy.add_tcp("0.0.0.0:443");
server.add_service(proxy);
server.run_forever();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 |
|---|---|
listener / frontend | listen + [reverse_proxy.protocols] |
host + path matcher | [[reverse_proxy.routes]] |
backend / cluster / service | [[reverse_proxy.upstreams]] |
health probe | [[reverse_proxy.upstreams]].health_check_* |
request limits and timeouts | [[reverse_proxy.policies]] |
certificate and private key | [reverse_proxy.tls] / [[sites]] cert + key |
השתמש במעבר הפיך בחמישה שלבים.
החזק את המאזין הישן מוכן עד ש-Webship עבר את שערי הדיוק, קיבולת, אבטחה, נראות וביטול על תנועה מייצגת.
- 1
התנהגות ניתנת לצפייה במלאי
רשום מאזינים, דומיינים, נתיבים, upstreams, תעודות, כתיב מחדש, אימות, כללי מטמון, בדיקות בריאות, מגבלות ואינטגרציות תפעוליות.
- 2
תרגם גבול אחד
העבר מארח אחד או מסלול ל-TOML קפדני. שמור על מודולים ספציפיים לספק ולוגיקת יישום מאחורי Webship עד שהחלופות הנפרדות יוכחו.
- 3
אמת באופן לא מקוון ומקומי
הרץ --check-config ו- --print-effective-config, בדוק את התוצאה המצונזרת, בחן את הבריאות באופן מקומי, והפעל TLS גם על TCP וגם על UDP כאשר HTTP/3 מופעל.
- 4
תעבורת Canary אמיתית
שלח חתיכת תנועה קטנה וניתנת לצפייה ל-Webship. השווה קודי מצב, כותרות, גופים, חביון, בריאות upstream, התנהגות מטמון, יומנים והחלטות אבטחה.
- 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