Versenytárs migrációs útmutató
Migrálás OpenResty-ről Webship-ra anélkül, hogy vak váltást végeznénk.
Mozgasd a szabványos NGINX élviselkedést a Webship-ba, miközben izolálod a Lua alkalmazáslogikát egy egyértelmű megtartás-vagy-átírás döntéshez.
Határozza meg a migráció határát a forgalom megváltoztatása előtt.
Kezdje azzal, hogy csak az Webship által reprodukálható és validálható viselkedést mozdítja el. Hagyja a meglévő eredeti rendszeren az alkalmazás hitelesítését, a szolgáltatás-felderítést, a szkripteket és a speciális gyorsítótár-szabályokat, amíg azok helyettesítői át nem mennek a termeléshez hasonló teszteken.
Elsőként azonosítsd a legkisebb gyártási útvonalat.
A forrásfragment az átállási koncepciót azonosítja; a Webship fragment a célformát mutatja. Cserélje ki a példadomainokat, címeket, tanúsítványokat, korlátokat és egészségügyi útvonalakat a környezetében érvényesített értékekre.
server {
listen 443 ssl;
server_name app.example.com;
location / {
access_by_lua_file /etc/openresty/auth.lua;
proxy_pass http://127.0.0.1:8080;
}
}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 = 30000Fogalmakat térképezzen fel, ne szintaxist.
A műszaki utasítások nem mindig felelnek meg egy az egyhez. Használja ezt a táblázatot a megfelelő Webship konfigurációs terület megtalálásához, majd ellenőrizze a hatályos konfigurációt és a futásidejű viselkedést.
| Jelenlegi koncepció vagy irányelv | Webship konfigurációs cél |
|---|---|
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 |
Használj visszafordítható, ötlépéses átkapcsolást.
Tartsd készen a régi hallgatót, amíg Webship át nem megy a helyesség, kapacitás, biztonság, megfigyelhetőség és visszagörgetés kapuin a reprezentatív forgalmon.
- 1
A készlet megfigyelhető viselkedése
Rögzítse a hallgatókat, domaineket, útvonalakat, upstream-eket, tanúsítványokat, átírásokat, hitelesítést, gyorsítótár szabályokat, állapot probe-okat, korlátokat és operatív integrációkat.
- 2
Fordítson le egy határt
Mozgasson egy hosztot vagy útvonalat szigorú TOML állapotba. Tartsa meg a gyártó-specifikus modulokat és az alkalmazáslogikát a Webship mögött, amíg külön csere nem bizonyított.
- 3
Érvényesítés offline és helyben
Futtassa a --check-config és --print-effective-config parancsokat, ellenőrizze a kiadott eredményt, vizsgálja meg a helyi állapotot, és használja a TLS-t mind TCP, mind UDP felett, amikor HTTP/3 engedélyezve van.
- 4
Valódi canary forgalom
Küldjön egy kis, megfigyelhető forgalmi szeletet a Webship-nak. Hasonlítsa össze a státuszkódokat, fejlécet, tartalmakat, késleltetést, upstream állapotot, gyorsítótár viselkedést, naplókat és biztonsági döntéseket.
- 5
Promóció visszagörgetésre készen
Növelje a forgalmat a mért szakaszokban. Tartsa az előző célt egészséges és azonnal útvonalra állítható állapotban, amíg az egyeztetett megfigyelési ablak és a terhelési kapuk el nem telnek.
Először ellenőrizze. Visszagörgetés útválasztással, ne élő szerkesztéssel.
Érvényesítse a jelölt fájlt, vizsgálja meg a letiltott érvényes konfigurációt, és ellenőrizze a privát hallgatót, mielőtt forgalmat változtatna. Őrizze meg a régi bináris fájlt, konfigurációt, hallgatót és DNS- vagy terheléselosztó célpontot, amíg a megfigyelési ablak le nem zárul.
/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