Maison > Article > développement back-end > Utilisez la gestion des processus php-fpm pour réaliser l'équilibrage de charge
Utilisez la gestion des processus php-fpm pour réaliser l'équilibrage de charge
Avec la complexité croissante des applications Internet et l'augmentation du nombre d'utilisateurs, l'équilibrage de charge est devenu une technologie indispensable. L'objectif de l'équilibrage de charge est de répartir le trafic sur plusieurs serveurs pour améliorer la stabilité et les performances du système. Dans les applications PHP, php-fpm (PHP FastCGI Process Manager) est un outil de gestion de processus courant qui peut être utilisé pour réaliser l'équilibrage de charge et fournit des options de configuration flexibles.
Cet article expliquera comment utiliser l'outil de gestion de processus php-fpm pour réaliser l'équilibrage de charge et fournira quelques exemples de code.
1. Installez php-fpm
Tout d'abord, vous devez vous assurer que php-fpm a été installé sur le serveur. Vous pouvez vérifier si php-fpm a été installé en exécutant la commande suivante :
$ php-fpm -v
Si vous voyez un résultat similaire à celui-ci, php-fpm a été installé avec succès :
PHP 7.4.9 (fpm-fcgi) (built: Jul 16 2020 21:48:32)
Si php-fpm n'est pas installé, vous pouvez l'installer en exécutant la commande suivante :
$ sudo apt-get install php-fpm
2. Configurez php-fpm
Avant d'implémenter l'équilibrage de charge, vous devez configurer php-fpm. Il comprend principalement les aspects suivants :
Dans le répertoire /etc/php/{version}/fpm/pool.d/, créez un nouveau fichier de configuration nommé vhost1.conf pour configurer l'hôte virtuel. L'exemple de configuration est le suivant :
[vhost1] user = www-data group = www-data listen = /var/run/php/vhost1.sock listen.owner = www-data listen.group = www-data
Parmi eux, l'utilisateur et le groupe spécifient l'utilisateur et le groupe sur lesquels l'hôte virtuel s'exécute ; Listen spécifie le chemin du socket que php-fpm doit écouter.
Dans le répertoire /etc/php/{version}/fpm/pool.d/, recherchez le fichier de configuration nommé www.conf pour configurer la gestion des processus. L'exemple de configuration est le suivant :
[www] pm = dynamic pm.max_children = 10 pm.start_servers = 2 pm.min_spare_servers = 1 pm.max_spare_servers = 3
Parmi eux, l'élément de configuration pm spécifie le mode de gestion des processus comme mode dynamique ; pm.max_children spécifie le nombre maximum de processus enfants ; pm.start_servers spécifie le nombre de processus enfants de démarrage pm ; min_spare_servers et pm.max_spare_servers spécifient le nombre de processus enfants inactifs.
En plus des deux configurations principales ci-dessus, vous pouvez également configurer d'autres options en fonction des besoins réels, telles que la limite de mémoire, le délai d'attente, etc.
3. Implémenter l'équilibrage de charge
Une fois la configuration de php-fpm terminée, vous pouvez l'utiliser pour réaliser l'équilibrage de charge. Les étapes spécifiques sont les suivantes :
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.
Vous pouvez tester l'effet de l'équilibrage de charge en écrivant un simple script PHP. L'exemple de code est le suivant :
<?php echo "Hello, World! "; echo "Server IP: " . $_SERVER['SERVER_ADDR'] . " "; ?>
IV Résumé
Cet article présente la méthode d'utilisation du processus php-fpm. gestion pour réaliser l’équilibrage de charge et fournit des exemples de configuration et des exemples de code. En configurant correctement l'outil de gestion de processus php-fpm et le serveur Web, l'équilibrage de charge peut être obtenu et la stabilité et les performances du système peuvent être améliorées. Dans des applications pratiques, il peut également être combiné avec d'autres technologies, telles que la mise en cache, le partage de bases de données, etc., pour optimiser davantage l'effet d'équilibrage de charge.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!