Gunakan pengurusan proses php-fpm untuk mencapai pengimbangan beban
Dengan peningkatan kerumitan aplikasi Internet dan peningkatan bilangan pengguna, pengimbangan beban telah menjadi teknologi yang sangat diperlukan. Matlamat pengimbangan beban adalah untuk mengagihkan trafik ke berbilang pelayan untuk meningkatkan kestabilan dan prestasi sistem. Dalam aplikasi PHP, php-fpm (Pengurus Proses PHP FastCGI) ialah alat pengurusan proses biasa yang boleh digunakan untuk mencapai pengimbangan beban dan menyediakan pilihan konfigurasi yang fleksibel.
Artikel ini akan memperkenalkan cara menggunakan alat pengurusan proses php-fpm untuk mencapai pengimbangan beban dan memberikan beberapa contoh kod.
1. Pasang php-fpm
Pertama, anda perlu memastikan php-fpm telah dipasang pada pelayan. Anda boleh menyemak sama ada php-fpm telah dipasang dengan menjalankan arahan berikut:
$ php-fpm -v
Jika anda melihat output yang serupa dengan yang berikut, php-fpm telah berjaya dipasang:
PHP 7.4.9 (fpm-fcgi) (built: Jul 16 2020 21:48:32)
Jika php-fpm tidak dipasang, anda boleh memasang dengan menjalankan arahan berikut:
$ sudo apt-get install php-fpm
2 Konfigurasikan php-fpm
Sebelum melaksanakan pengimbangan beban, anda perlu mengkonfigurasi php-fpm. Ia terutamanya merangkumi aspek berikut:
Dalam direktori /etc/php/{version}/fpm/pool.d/, buat fail konfigurasi baharu bernama vhost1.conf untuk mengkonfigurasi hos maya. Konfigurasi sampel adalah seperti berikut:
[vhost1] user = www-data group = www-data listen = /var/run/php/vhost1.sock listen.owner = www-data listen.group = www-data
Antaranya, pengguna dan kumpulan menentukan pengguna dan kumpulan di mana hos maya berjalan menentukan laluan soket untuk php-fpm untuk didengar.
Dalam direktori /etc/php/{version}/fpm/pool.d/, cari fail konfigurasi bernama www.conf untuk mengkonfigurasi pengurusan proses. Konfigurasi sampel adalah seperti berikut:
[www] pm = dynamic pm.max_children = 10 pm.start_servers = 2 pm.min_spare_servers = 1 pm.max_spare_servers = 3
Antaranya, item konfigurasi pm menentukan mod pengurusan proses sebagai mod dinamik pm.max_children menentukan bilangan maksimum proses anak pm.start_servers menentukan bilangan proses anak permulaan; min_spare_servers dan pm.max_spare_servers menentukan Bilangan proses anak terbiar.
Selain daripada dua konfigurasi utama di atas, anda juga boleh mengkonfigurasi beberapa pilihan lain mengikut keperluan sebenar, seperti had memori, tamat masa, dsb.
3. Laksanakan pengimbangan beban
Selepas konfigurasi php-fpm selesai, anda boleh menggunakannya untuk mencapai pengimbangan beban. Langkah-langkah khusus adalah seperti berikut:
location / { proxy_pass unix:/var/run/php/vhost1.sock; } location /vhost2/ { proxy_pass unix:/var/run/php/vhost2.sock; }
$ sudo systemctl start php7.4-fpm
Anda boleh menguji kesan load balancing dengan menulis skrip PHP yang mudah adalah seperti berikut:
<?php echo "Hello, World! "; echo "Server IP: " . $_SERVER['SERVER_ADDR'] . " "; ?>
IV pengurusan untuk mencapai pengimbangan beban, dan menyediakan beberapa contoh Konfigurasi dan contoh kod. Dengan mengkonfigurasi alat pengurusan proses php-fpm dan pelayan web dengan betul, pengimbangan beban boleh dicapai dan kestabilan serta prestasi sistem boleh dipertingkatkan. Dalam aplikasi praktikal, ia juga boleh digabungkan dengan teknologi lain, seperti caching, sharding pangkalan data, dll., untuk mengoptimumkan lagi kesan pengimbangan beban.
Atas ialah kandungan terperinci Gunakan pengurusan proses php-fpm untuk mencapai pengimbangan beban. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!