Apakah itu nginx smooth restart dan FPM smooth restart?
Graceful Restart
GR ialah singkatan dari Graceful Restart Ia merupakan satu mekanisme untuk memastikan perkhidmatan penghantaran semula tidak terganggu apabila protokol dimulakan semula.
Inti mekanisme GR ialah apabila peranti memulakan semula protokol, ia boleh memberitahu peranti sekelilingnya untuk mengekalkan hubungan jiran yang stabil dan laluan ke peranti dalam tempoh masa tertentu. Selepas protokol dimulakan semula, peranti persisian membantunya dalam menyegerakkan maklumat (termasuk pelbagai topologi, penghalaan dan maklumat sesi yang diselenggarakan oleh penghalaan/protokol berkaitan MPLS yang menyokong GR), supaya peranti boleh dipulihkan kepada keadaan sebelum dimulakan semula dalam keadaan masa yang sesingkat mungkin. Tidak akan ada laluan mengepak semasa keseluruhan proses mula semula protokol, dan tidak akan ada perubahan dalam laluan pemajuan paket Keseluruhan sistem boleh memajukan data tanpa gangguan. Proses ini dipanggil permulaan semula yang lancar.
nginx smooth restart
Proses Nginx boleh dibahagikan kepada dua jenis: proses utama dan proses pekerja Mula semula lancar dikawal melalui HUB isyarat.
Nota: Pada platform yang mematuhi POSIX, SIGUSR1 dan SIGUSR2 ialah isyarat yang dihantar kepada proses yang mewakili situasi yang ditentukan pengguna.
Untuk menganalisis proses mula semula lancar nginx secara terperinci, kami terus memantau perubahan proses nginx.
Hantar isyarat HUP
kill -HUP `cat /home/git/nginx/logs/nginx.pid`
Dengan memerhati, mulakan semula lancar secara kasar boleh dianalisis Prosesnya ialah:
1. Tuan menggunakan konfigurasi baharu untuk mengeluarkan n-1 pekerja dan tuan baharu
2. Pekerja baharu mengendalikan permintaan baharu, dan pekerja lama keluar selepas pelaksanaan
3. . Induk memuatkan semula konfigurasi, semasa Gunakan induk baharu untuk mengambil alih perkhidmatan
4. Induk dimuatkan dan dikonfigurasikan, dan induk baharu beralih ke mod kerja pekerja
Selepas permulaan semula yang lancar, proses induk nombor tidak akan berubah.
naik taraf lancar nginx
HUP hanya digunakan untuk mulakan semula lancar, konfigurasi memuatkan, dsb. Jika anda ingin menaik taraf versi nginx dengan lancar dan memuatkan semula fail binari yang disusun, anda perlu menggunakan Isyarat USR2.
1. Hantar isyarat USR2
kill -USR2 `cat /home/git/nginx/logs/nginx.pid`
Perhatikan proses nginx dan garpu tuan dan pekerja baharu Kandungan nginx.pid telah berubah, dan fail nginx.pid.oldbin dijana dalam direktori log untuk merekodkan pid induk lama
2 akan menghentikan perkhidmatan dengan anggun Iaitu: berhenti menerima permintaan baharu, tetapi tidak akan menamatkan permintaan yang sedang diproses. Selepas tempoh masa, semua proses pekerja keluar nginx lama, hanya meninggalkan proses induk, dan semua permintaan pengguna diproses oleh proses nginx baharu.
kill -WINCH `cat /home/git/nginx/logs/nginx.pid.oldbin`
3 Hantar isyarat BERHENTI kepada tuan lama, proses nginx lama keluar sepenuhnya, dan peningkatan lancar selesai.
kill -QUIT `cat /home/git/nginx/logs/nginx.pid.oldbin`
FPM smooth restart
FPM (FastCGI Process Manager) digunakan untuk menggantikan kebanyakan fungsi tambahan PHP FastCGI, php5 FPM telah disepadukan sejak .3.3 PHP-FPM boleh dihidupkan dengan menghantar parameter –enable-fpm dalam ./configure.
Mula semula lancar FPM perlu dikawal oleh isyarat USR2, tetapi ia agak berbeza daripada proses mula semula lancar nginx.
kill -USR2 `cat /home/git/php/var/run/php-fpm.pid`
Dengan memerhati proses fpm secara berterusan, kita dapat melihat bahawa FPM dimulakan semula dengan lancar Ia perlu menunggu proses anak keluar sepenuhnya sebelum memulakan proses master dan child yang baharu , dan kemudian tuan lama berhenti.
Gunakan strace untuk analisis lanjut
Didapati tuan memberitahu semua proses anak untuk keluar, termasuk proses anak yang memproses permintaan.
Untuk mengesahkan lagi kesimpulan ini, tulis skrip tidur sebelah pelayan
<?php exec("sleep 5"); echo 'done';
Gunakan penyemak imbas untuk meminta alamat ini, dan dalam tempoh ini, fpm akan dimulakan semula dengan lancar, dan permintaan akan terus 502.
log ralat nginx:
[error] 29841#0: *1646 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 127.0.0.1, server: localhost, request: "GET /test.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9001", host: "localhost"
pepijat php#60961, yang juga menerangkan sebab fpm tidak dapat melaksanakan mula semula yang lancar dengan anggun.
Adakah FPM begitu rendah? Jawapannya adalah tidak pada masa itu, sebenarnya, matlamat kami boleh dicapai melalui parameter process_control_timeout.
process_control_timeout
Tetapkan tamat masa untuk proses anak menerima isyarat pemultipleksan proses utama. Unit tersedia: s (saat), m (minit), h (jam) atau d (hari). Unit lalai: s (saat). Lalai: 0 (mati).
Pada dasarnya, php-fpm akan memilih proses fastcgi terbiar untuk memproses permintaan Sebelum memproses, php-fpm akan menghantar isyarat kepada fastcgi untuk menyediakan proses fastcgi untuk menerima pemprosesan permintaan. Walau bagaimanapun, proses fastcgi tidak sentiasa dapat mengendalikan permintaan, iaitu, ia tidak boleh sentiasa bertindak balas kepada isyarat (seperti animasi yang digantung pada masa ini, anda perlu menetapkan masa php-fpm pergi untuk proses fastcgi). bertindak balas kepada isyarat jika masa tamat, php -fpm akan memikirkan cara lain (seperti memilih proses fastcgi lain), ini adalah peranan parameter process_control_timeout.
Nilai lalai parameter ini ialah 0, yang bermaksud ia tidak berkuat kuasa Tukar kepada 10 dan sahkan semula 502 tidak akan muncul lagi.
Atas ialah kandungan terperinci Apakah itu nginx smooth restart dan FPM smooth restart?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Untuk membenarkan pelayan Tomcat mengakses rangkaian luaran, anda perlu: mengubah suai fail konfigurasi Tomcat untuk membenarkan sambungan luaran. Tambahkan peraturan tembok api untuk membenarkan akses kepada port pelayan Tomcat. Buat rekod DNS yang menunjukkan nama domain ke IP awam pelayan Tomcat. Pilihan: Gunakan proksi terbalik untuk meningkatkan keselamatan dan prestasi. Pilihan: Sediakan HTTPS untuk meningkatkan keselamatan.

Langkah-langkah untuk menjalankan ThinkPHP Framework secara setempat: Muat turun dan nyahzip ThinkPHP Framework ke direktori tempatan. Buat hos maya (pilihan) yang menunjuk ke direktori akar ThinkPHP. Konfigurasikan parameter sambungan pangkalan data. Mulakan pelayan web. Mulakan aplikasi ThinkPHP. Akses URL aplikasi ThinkPHP dan jalankannya.

Untuk menyelesaikan ralat "Selamat datang ke nginx!", anda perlu menyemak konfigurasi hos maya, dayakan hos maya, muat semula Nginx, jika fail konfigurasi hos maya tidak dapat ditemui, buat halaman lalai dan muat semula Nginx, kemudian mesej ralat akan hilang dan laman web akan menjadi paparan biasa.

Terdapat lima kaedah untuk komunikasi kontena dalam persekitaran Docker: rangkaian kongsi, Karang Docker, proksi rangkaian, volum dikongsi dan baris gilir mesej. Bergantung pada keperluan pengasingan dan keselamatan anda, pilih kaedah komunikasi yang paling sesuai, seperti memanfaatkan Docker Compose untuk memudahkan sambungan atau menggunakan proksi rangkaian untuk meningkatkan pengasingan.

Menukar fail HTML kepada URL memerlukan pelayan web, yang melibatkan langkah berikut: Dapatkan pelayan web. Sediakan pelayan web. Muat naik fail HTML. Buat nama domain. Halakan permintaan.

Langkah-langkah penggunaan pelayan untuk projek Node.js: Sediakan persekitaran penggunaan: dapatkan akses pelayan, pasang Node.js, sediakan repositori Git. Bina aplikasi: Gunakan npm run build untuk menjana kod dan kebergantungan yang boleh digunakan. Muat naik kod ke pelayan: melalui Git atau Protokol Pemindahan Fail. Pasang kebergantungan: SSH ke dalam pelayan dan gunakan pemasangan npm untuk memasang kebergantungan aplikasi. Mulakan aplikasi: Gunakan arahan seperti node index.js untuk memulakan aplikasi, atau gunakan pengurus proses seperti pm2. Konfigurasikan proksi terbalik (pilihan): Gunakan proksi terbalik seperti Nginx atau Apache untuk menghalakan trafik ke aplikasi anda

Arahan yang paling biasa digunakan dalam Dockerfile ialah: DARI: Cipta imej baharu atau terbitkan imej baharu RUN: Laksanakan arahan (pasang perisian, konfigurasikan sistem) COPY: Salin fail tempatan ke imej TAMBAH: Sama seperti COPY, ia boleh menyahmampat secara automatik tar arkib atau dapatkan fail URL CMD: Tentukan arahan apabila bekas bermula DEDAHKAN: Isytiharkan port mendengar kontena (tetapi tidak umum) ENV: Tetapkan pembolehubah persekitaran VOLUME: Pasang direktori hos atau volum tanpa nama WORKDIR: Tetapkan direktori kerja dalam bekas ENTRYPOINT: Tentukan perkara yang hendak dilaksanakan apabila bekas itu memulakan Fail Boleh laku (serupa dengan CMD, tetapi tidak boleh ditimpa)

Ya, Node.js boleh diakses dari luar. Anda boleh menggunakan kaedah berikut: Gunakan Cloud Functions untuk menggunakan fungsi dan menjadikannya boleh diakses secara umum. Gunakan rangka kerja Express untuk membuat laluan dan menentukan titik akhir. Gunakan Nginx untuk membalikkan permintaan proksi kepada aplikasi Node.js. Gunakan bekas Docker untuk menjalankan aplikasi Node.js dan dedahkannya melalui pemetaan port.
