17 puan yazan xguru 2022-01-06 | 1 yorum | WhatsApp'ta paylaş
  • Nginx'in kullandığı yükseltme yöntemi

→ Özgün dosyadaki çalıştırılabilir dosya yenisiyle değiştirilir

→ Ana sürece USR2 sinyali gönderilir

→ Ana süreç, kendi süreç ID dosyasını .oldbin uzantısıyla değiştirir

→ Yeni çalıştırılabilir dosyayı başlatarak yeni worker süreçleri oluşturur

→ Tüm worker süreçleri istek almaya başlar

→ İlk ana sürece WINCH sinyali gönderildiğinde, kendi worker süreçlerinden normal şekilde sonlanmalarını ister

  • Mevcut ana süreç, listen socket'ini kapatmaz ve gerekirse yeniden worker süreçleri oluşturabilir

  • Eğer yeni ana süreç düzgün çalışmazsa

→ Mevcut ana sürece HUP sinyali gönderilerek yeni worker süreçlerini başlatması sağlanır; yeni ana sürecin worker'ları sonlandıktan sonra yeni ana sürece QUIT gönderilip kapatılır

→ Yeni ana sürece TERM sinyali gönderilerek mevcut worker süreçlerinden hemen durmaları istenir. Yeni ana süreç ölürse mevcut ana süreç yeni worker süreçlerini başlatır

  • Yeni ana süreç bu şekilde sonlandığında, mevcut ana süreç .oldbin uzantısını siler

  • Yükseltme başarılı olursa mevcut ana sürece QUIT sinyali gönderilerek kapatılır ve yalnızca yeni süreç bırakılır

1 yorum

 
xguru 2022-01-06

Caddy 1 de bu yöntemi kullanıyor

Envoy'un Hot Restart yöntemi https://envoyproxy.io/docs/envoy/…

HAProxy Seamless Reload https://haproxy.com/blog/…