Rakip göç kılavuzu
Kör bir geçiş yapmadan Traefik'den Webship'a geçiş yap.
Giriş noktalarını, yönlendiricileri, kuralları, servisleri, sağlık kontrollerini, ortakatmanları ve TLS'i kararlı Webship rotaları ve politikalarına çevirin.
Trafiği değiştirmeden önce geçiş sınırını tanımlayın.
Sadece Webship'ın çoğaltıp doğrulayabileceği davranışı taşıyarak başlayın. Uygulama kimlik doğrulamasını, servis keşfini, betikleri ve özel önbellek kurallarını, bunların yerine geçecek olanlar üretim benzeri testleri geçene kadar mevcut kaynağa bırakın.
Önce en küçük üretim yolunu çevirin.
Kaynak parça, göç konusunu tanımlar; Webship parçası hedef şekli gösterir. Örnek alan adlarını, adresleri, sertifikaları, limitleri ve sağlık yollarını ortamınız için doğrulanmış değerlerle değiştirin.
http:
routers:
app:
rule: Host(`app.example.com`)
service: app
services:
app:
loadBalancer:
servers:
- url: http://127.0.0.1:8080listen = "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 = 30000Sözdizimi değil, kavramları eşleştirin.
Teknik talimatlar her zaman bire bir eşleşmez. Eşdeğer Webship yapılandırma alanını bulmak için bu tabloyu kullanın, ardından geçerli yapılandırmayı ve çalışma zamanındaki davranışı doğrulayın.
| Mevcut kavram veya yönerge | Webship yapılandırma hedefi |
|---|---|
entryPoints | listen + [reverse_proxy.protocols] |
routers rule | [[reverse_proxy.routes]] |
services loadBalancer servers | [[reverse_proxy.upstreams]] |
healthCheck | [[reverse_proxy.upstreams]].health_check_* |
TLS certificate | [reverse_proxy.tls] / [[sites]] cert + key |
Geri alınabilir beş adımlı bir geçiş kullanın.
Temsilci trafik üzerinde doğruluk, kapasite, güvenlik, gözlemlenebilirlik ve geri alma kapılarından Webship geçene kadar eski dinleyiciyi hazır tutun.
- 1
Envanterde gözlemlenebilir davranış
Dinleyicileri, alan adlarını, rotaları, üst akışları, sertifikaları, yönlendirmeleri, kimlik doğrulamayı, önbellek kurallarını, sağlık denetimlerini, sınırları ve operasyonel entegrasyonları kaydedin.
- 2
Bir sınırı çevirin
Bir ana bilgisayarı veya rotayı sıkı TOML içine taşıyın. Ayrı yedekler kanıtlanana kadar satıcıya özel modülleri ve uygulama mantığını Webship arkasında tutun.
- 3
Çevrimdışı ve yerel olarak doğrula
--check-config ve --print-effective-config çalıştırın, sansürlenmiş sonucu inceleyin, sağlığı yerel olarak test edin ve HTTP/3 etkin olduğunda TCP ve UDP üzerinden TLS'i çalıştırın.
- 4
Canary gerçek trafiği
Webship'a küçük, gözlemlenebilir bir trafik dilimi gönderin. Durum kodlarını, başlıkları, gövdeleri, gecikmeyi, upstream sağlığını, önbellek davranışını, günlükleri ve güvenlik kararlarını karşılaştırın.
- 5
Geri alma hazır durumda terfi ettirin
Ölçülen aşamalarda trafiği artırın. Önceki hedefi sağlıklı ve hemen yönlendirilebilir durumda tutun, ta ki üzerinde anlaşılan gözlem penceresi ve yük kapıları geçene kadar.
Önce doğrulayın. Canlıyı düzenleyerek değil, yönlendirerek geri alın.
Aday dosyayı doğrulayın, gizlenmiş etkin yapılandırmayı inceleyin ve trafiği değiştirmeden önce özel dinleyiciyi araştırın. Gözlem penceresi kapanana kadar eski ikili dosyayı, yapılandırmayı, dinleyiciyi ve DNS veya yük dengeleyici hedefini koruyun.
/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