Bagaimana untuk menaik taraf dengan lancar dalam operasi dan penyelenggaraan nginx

王林
Lepaskan: 2023-05-15 17:34:06
ke hadapan
1329 orang telah melayarinya

Anda boleh menggantikan nginx lama boleh laku dengan yang baharu tanpa mengganggu perkhidmatan - permintaan baharu tidak akan hilang (apabila menaik taraf kepada versi baharu atau menambah/mengalih keluar modul pelayan). (Pembelajaran yang disyorkan: operasi dan penyelenggaraan nginx)

Mula-mula, gunakan program boleh laku baharu untuk menggantikan yang lama (yang terbaik adalah membuat sandaran), dan kemudian hantar isyarat USR2 (kill-USR2pid) ke proses utama.

Proses utama akan menamakan semula fail .pidnya kepada .oldbin (contohnya: /usr/local/nginx/logs/nginx.pid.oldbin), kemudian laksanakan program boleh laku baharu dan mulakan proses utama baharu dan kerja baharu mengikut turutan Proses:

PIDPPIDUSER%CPUVSZWCHANCOMMAND

​331261root0.01164pausenginx:masterprocess/usr/local/nginx/sbin/nginx

​3313433126nobody0.01368kqreadnginx:workerprocess(nginx)

3313533126nobody0.01380kqreadnginx:workerprocess(nginx)

​3313633126nobody0.01368kqreadnginx:workerprocess(nginx)

​3626433126root0.01148pausenginx:masterprocess/usr/local/nginx/sbin/nginx

​3626536264nobody0.01364kqreadnginx:workerprocess(nginx)

​3626636264nobody0.01364kqreadnginx:workerprocess(nginx)

3626736264nobody0.01364kqreadnginx:workerprocess(nginx)

Pada masa ini, dua kejadian nginx akan dijalankan pada masa yang sama dan memproses permintaan masuk bersama-sama. Untuk menghapuskan contoh lama secara berperingkat, anda mesti menghantar isyarat WINCH ke proses induk lama, dan kemudian proses pekerjanya akan mula ditutup dengan anggun:

PIDPPIDUSER%CPUVSZWCHANCOMMAND

​331261root0.01164pausenginx:masterprocess/usr/local/nginx/sbin/nginx

​3313533126nobody0.01380kqreadnginx:workerprocessisshuttingdown(nginx)

​3626433126root0.01148pausenginx:masterprocess/usr/local/nginx/sbin/nginx

​3626536264nobody0.01364kqreadnginx:workerprocess(nginx)

​3626636264nobody0.01364kqreadnginx:workerprocess(nginx)

3626736264nobody0.01364kqreadnginx:workerprocess(nginx)

Selepas beberapa ketika, proses pekerja lama memproses semua permintaan yang disambungkan dan kemudian keluar, dan hanya proses pekerja baharu yang mengendalikan permintaan masuk:

PIDPPIDUSER%CPUVSZWCHANCOMMAND

​331261root0.01164pausenginx:masterprocess/usr/local/nginx/sbin/nginx

​3626433126root0.01148pausenginx:masterprocess/usr/local/nginx/sbin/nginx

​3626536264nobody0.01364kqreadnginx:workerprocess(nginx)

​3626636264nobody0.01364kqreadnginx:workerprocess(nginx)

3626736264nobody0.01364kqreadnginx:workerprocess(nginx)

Pada masa ini, kerana pelayan lama belum lagi menutup soket yang didengarinya, anda masih boleh memulihkan pelayan lama dengan mengikuti langkah berikut:

Hantar isyarat HUP ke proses induk lama - ia akan memulakan proses pekerjanya tanpa memuatkan semula fail konfigurasi

Hantar isyarat BERHENTI ke proses utama baharu, minta ia mematikan proses kerjanya dengan tenang

Hantar isyarat TERM ke proses utama baharu untuk memaksanya keluar

Jika proses pekerja baharu tidak boleh keluar atas sebab tertentu, hantarkan isyarat KILL

Selepas proses utama baharu keluar, proses utama lama akan mengalih keluar awalan .oldbin dan memulihkannya kepada fail .pidnya Dengan cara ini, semuanya akan dipulihkan kepada keadaan sebelum naik taraf.

Jika percubaan naik taraf berjaya dan anda ingin mengekalkan pelayan baharu, hantar isyarat BERHENTI ke proses utama lama untuk keluar dan biarkan pelayan baharu sahaja berjalan:

PIDPPIDUSER%CPUVSZWCHANCOMMAND

​362641root0.01148pausenginx:masterprocess/usr/local/nginx/sbin/nginx

​3626536264nobody0.01364kqreadnginx:workerprocess(nginx)

​3626636264nobody0.01364kqreadnginx:workerprocess(nginx)

3626736264nobody0.01364kqreadnginx:workerprocess(nginx)

Atas ialah kandungan terperinci Bagaimana untuk menaik taraf dengan lancar dalam operasi dan penyelenggaraan nginx. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!