- Metode peningkatan versi yang digunakan Nginx
→ Mengganti file eksekusi asli dengan yang baru
→ Mengirim sinyal USR2 ke proses master
→ Proses master mengganti nama file process ID miliknya sendiri dengan ekstensi .oldbin
→ Menjalankan file eksekusi baru agar membuat proses worker baru
→ Semua proses worker mulai menerima request
→ Saat sinyal WINCH dikirim ke proses master pertama, proses tersebut meminta proses-proses worker miliknya untuk berhenti secara normal
-
Proses master lama tidak menutup soket listen, dan bila perlu dapat membuat proses worker lagi
-
Jika proses master baru tidak berjalan dengan benar
→ Kirim sinyal HUP ke proses master lama agar memulai proses worker baru, lalu setelah worker milik master baru berhenti, kirim QUIT ke master baru untuk mengakhirinya
→ Kirim sinyal TERM ke proses master baru untuk meminta proses-proses worker saat ini berhenti seketika. Jika master baru mati, master lama akan memulai proses worker baru
-
Ketika proses master baru berhenti seperti ini, proses master lama menghapus ekstensi
.oldbin -
Jika peningkatan versi berhasil, kirim sinyal QUIT ke proses master lama untuk menghentikannya dan sisakan hanya proses baru
1 komentar
Caddy 1 juga menggunakan cara ini
Metode Hot Restart milik Envoy https://envoyproxy.io/docs/envoy/…
HAProxy Seamless Reload https://haproxy.com/blog/…