17 poin oleh xguru 2022-01-06 | 1 komentar | Bagikan ke WhatsApp
  • 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

 
xguru 2022-01-06

Caddy 1 juga menggunakan cara ini

Metode Hot Restart milik Envoy https://envoyproxy.io/docs/envoy/…

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