Rakip göç kılavuzu
Kör bir geçiş yapmadan Varnish Cache'den Webship'a geçiş yap.
Standart arka uç yönlendirmesini ve sınırlı önbellek politikasını Webship içine taşıyın; özel VCL davranışını ise arama-değiştir dönüştürmesi yerine ölçülmüş bir yeniden tasarım olarak ele alın.
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.
vcl 4.1;
backend default {
.host = "127.0.0.1";
.port = "8080";
}
sub vcl_recv {
if (req.http.host == "app.example.com") { return (hash); }
}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 = 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 |
|---|---|
backend | [[reverse_proxy.upstreams]] |
vcl_recv host + URL logic | [[reverse_proxy.routes]] |
probe | [[reverse_proxy.upstreams]].health_check_* |
TTL and cache policy | [reverse_proxy.cache] |
request handling limits | [[reverse_proxy.policies]] |
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