Rumah >pembangunan bahagian belakang >tutorial php >Gunakan pengurusan proses php-fpm untuk mencapai pengimbangan beban

Gunakan pengurusan proses php-fpm untuk mencapai pengimbangan beban

WBOY
WBOYasal
2023-07-09 13:07:441085semak imbas

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:

  1. Konfigurasi hos maya

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.

  1. Konfigurasi pengurusan proses

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.

  1. Item konfigurasi lain

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:

  1. Dalam konfigurasi pelayan web seperti nginx, konfigurasikan proksi terbalik kepada berbilang soket php-fpm Contohnya adalah seperti berikut:
location / {
    proxy_pass unix:/var/run/php/vhost1.sock;
}

location /vhost2/ {
    proxy_pass unix:/var/run/php/vhost2.sock;
}
  1. Mulakan proses php-fpm
$ sudo systemctl start php7.4-fpm
.
  1. Uji load balancing Effect

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!

Kenyataan:
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