← Tüm geçiş rehberleri

Rakip göç kılavuzu

Kör bir geçiş yapmadan NGINX'den Webship'a geçiş yap.

Sunucu bloklarını, konumları, upstream’leri, sağlık kontrollerini, zaman aşımı değerlerini ve TLS dosyalarını kenar öncelikli bir geçişle sıkı Webship TOML biçimine eşleştirin.

Webship 1.1.0 için geçerlidirnginx.conf

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.

Temsilci NGINX yapılandırması
upstream app {
  server 127.0.0.1:8080;
  server 127.0.0.1:8081;
}
server {
  listen 443 ssl http2;
  server_name app.example.com;
  location / { proxy_pass http://app; }
}
Eşdeğer Webship TOML
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

Sö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önergeWebship yapılandırma hedefi
listenlisten + [reverse_proxy.protocols]
server_name + location[[reverse_proxy.routes]]
proxy_pass / upstream[[reverse_proxy.upstreams]]
proxy_*_timeout[[reverse_proxy.policies]]
ssl_certificate + ssl_certificate_key[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. 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. 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. 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. 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. 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