Baru-baru ini saya menghadapi masalah yang agak memalukan dan praktikal, iaitu Nginx yang digunakan dalam persekitaran pengeluaran kami adalah barang antik Centos6. Keperluan perniagaan perlu dilaksanakan dengan memuatkan modul Nginx, tetapi versinya terlalu lama dan memerlukan Nginx1.18 atau lebih baru untuk menyokongnya, dan milik kami ialah Nginx1.12. Kemudian menaik taraf Nginx adalah perkara yang perlu kita lakukan. Tetapi dalam persekitaran pengeluaran, anda perlu mempertimbangkan banyak perkara Tidak seperti pelayan ujian, Nginx menghentikan perkhidmatan, menyusun semula versi baharu, dan kemudian memulakannya semula. Perkhidmatan dalam talian kami perlu disediakan tanpa gangguan, jika tidak, ia akan menyebabkan kerugian ekonomi kepada perniagaan Jadi adakah ada rancangan untuk menaik taraf versi Nginx dengan lancar?
3 Proses operasi
1 🎜>
[root@k8s-master nginx-1.12.2]# ps aux | grep 'nginx' | grep -v '7月' | grep -v 'grep' root 15180 0.0 0.0 46136 920 ? Ss 17:22 0:00 nginx: master process ./nginx-1.12.2/sbin/nginx nobody 15181 0.0 0.1 46584 4344 ? S 17:22 0:00 nginx: worker process
2 nginx -V Lihat parameter kompilasi versi lama nginx
[root@k8s-master nginx-1.12.2]# nginx-1.12.2/sbin/nginx.old.1.12 -V nginx version: nginx/1.12.2 built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) built with OpenSSL 1.0.2k-fips 26 Jan 2017 TLS SNI support enabled configure arguments: --prefix=nginx-1.12.2 --with-pcre=/root/nginx-test/pcre-8.45/ --with-http_stub_status_module --with-http_gzip_static_module --with-http_ssl_module --with-stream [root@k8s-master nginx-1.12.2]#
mv nginx nginx.old
4. Pada masa ini kami memuat turun [nginx1.20.2] Kompil semula versi baharu dan ikut parameter kompilasi versi lama (atau tambah sendiri modul kompilasi baharu)
5 nginx dan alihkannya ke laluan nginx versi lama sebelumnya untuk menulis gantinya.
./configure --prefix=/usr/local/ --with-stream xxxx[模块列表] make &make install
6 Hantar nginx -USR2 15180 (proses utama nginx lama) untuk penggantian pada masa ini nginx memproses 2 proses nginx baharu
Ini Apabila permintaan diuji, beban diseimbangkan kepada dua tuan ini Permintaan dibuat 2 kali, kali pertama ia dimuatkan ke master baru, dan kali kedua ia dimuatkan ke master lama .7 Sahkan bahawa naik taraf berjaya, -Isyarat WINCH menghentikan induk versi lama daripada menerima permintaan baharu (pada masa ini, proses induk nginx versi lama tidak mati, tetapi hanya berhenti menerima permintaan baharu)
kill -winch 15180
Pada masa ini, jika URL diakses beberapa kali, pengimbangan beban tidak akan berlaku.
Hello world tidak muncul lagi8 Ia juga sangat mudah untuk melancarkan versi, hanya hantar kill -HUP 15180 (proses induk nginx lama)
<.>
Pada masa ini kedua-dua versi lama dan versi baharu nginx adalah pengimbangan beban kali ini versi baru nginx telah dibunuh -QUIT.
Atas ialah kandungan terperinci Apakah kaedah untuk meningkatkan kelancaran persekitaran pengeluaran Nginx?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!