Table des matières
cgi" >cgi
FastCgi" >FastCgi
php-cgi" >php-cgi
php-fpm" >php-fpm
Maison développement back-end tutoriel php cgi, fastcgi, php-cgi, php-fpm

cgi, fastcgi, php-cgi, php-fpm

Apr 20, 2018 am 10:52 AM
fastcgi php-cgi php-fpm

Cet article présente l'analyse de cgi, fastcgi, php-cgi et php-fpm. Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer

Définition<.>


Tout d'abord, à quoi sert CGI ? CGI doit garantir que les données transmises par le serveur Web sont dans un format standard, ce qui convient aux rédacteurs de programmes CGI.

Le serveur Web (comme nginx) n'est qu'un distributeur de contenu. Par exemple, si

est demandé, le serveur Web trouvera le fichier dans le système de fichiers et l'enverra au navigateur. Ce qui est distribué ici, ce sont des données statiques. D'accord, si la requête est maintenant /index.html, selon le fichier de configuration, nginx sait qu'il ne s'agit pas d'un fichier statique et doit être traité par l'analyseur PHP, alors il traitera simplement la requête et la remettra au PHP. analyseur. Quelles données Nginx transmettra-t-il à l'analyseur PHP ? L'URL doit être présente, la chaîne de requête doit être présente, les données POST doivent être présentes et l'en-tête HTTP doit être présent. Eh bien, CGI est le protocole qui stipule quelles données doivent être transmises et dans quel format elles doivent être transmises. le backend pour traiter la demande. Réfléchissez bien à la provenance des utilisateurs que vous utilisez dans votre code PHP. /index.php

Lorsque le serveur web recevra la requête

, il lancera le programme CGI correspondant, voici l'analyseur PHP. Ensuite, l'analyseur PHP analysera le fichier php.ini, initialisera l'environnement d'exécution, traitera la demande, renverra le résultat traité dans le format spécifié par CGI et quittera le processus. Le serveur Web renvoie ensuite les résultats au navigateur. /index.php

D'accord, CGI est un protocole et n'a rien à voir avec un processus ou quoi que ce soit. Alors, qu’est-ce que fastcgi ? Fastcgi est utilisé pour améliorer les performances des programmes CGI.

Améliorez les performances, alors quels sont les problèmes de performances des programmes CGI ? "L'analyseur PHP analysera le fichier php.ini et initialisera l'environnement d'exécution", c'est tout. Le CGI standard effectuera ces étapes pour chaque requête (ne soyez pas fatigué ! Démarrer le processus est très fatiguant !), donc le temps de traitement à chaque fois sera relativement long. C'est évidemment déraisonnable ! Alors, comment Fastcgi fait-il ? Tout d'abord, Fastcgi démarrera un maître, analysera le fichier de configuration, initialisera l'environnement d'exécution, puis démarrera plusieurs travailleurs. Lorsqu'une demande arrive, le maître la transmet à un travailleur et peut immédiatement accepter la demande suivante. Cela évite la duplication du travail et est naturellement très efficace. Et lorsqu'il n'y a pas assez de Workers, le maître peut pré-démarrer plusieurs Workers selon la configuration et attendre. Bien sûr, lorsqu'il y a trop de Workers inactifs, certains seront arrêtés, ce qui améliore les performances et économise les ressources. Il s'agit de la gestion des processus de fastcgi.


cgi

  • L'interface de passerelle universelle, la norme d'interface entre les programmes externes et les serveurs Web, est le processus de transfert d'informations entre les programmes cgi et les serveurs Web

  • Chaque requête générera un processus cgi. Une fois le programme cgi exécuté, le processus se termine

  • Indépendant du serveur et du langage de programmation indépendant

FastCgi

  • FastCgi est comme un Cgi résident, il peut toujours exécuter ça, tant qu'il est activé, il n'y a pas besoin de bifurquer à chaque fois, et il prend également en charge l'informatique distribuée, c'est-à-dire que le programme FastCgi peut être exécuté sur un hôte autre que le serveur du site Web et accepter les requêtes d'autres serveurs du site Web

  • Peut gérer plusieurs requêtes en même temps time

  • Utilisation de la mémoire à long terme

php-cgi

  • gestionnaire de processus FastCGI officiel de php

  • Après avoir modifié php.ini, vous devez tuer php-cgi puis démarrer php.ini pour qu'il prenne effet. Impossible de redémarrer en douceur

  • La mémoire ne peut pas être allouée dynamiquement

php-fpm

  • Non officiel Le fastCgi Le gestionnaire de processus a été officiellement inclus à partir de php5.4 Lors de la compilation de php, vous n'avez besoin que de –enable-fpm pour activer php-fpm

  • qui peut redémarrer php en douceur

  • .
  • Processus de planification dynamique




Nginx est uniquement responsable du transfert de proxy inverse/de requête et n'est pas responsable de la gestion du processus php-cgi, donc Nginx est généralement utilisé avec php-fpm qui peut gérer le processus de travail (processus enfant) par lui-même Il faut faire attention De plus, php-fpm est un SAPI indépendant, qui ne gère pas php-cgi. Autrement dit, php-fpm n'a rien à voir avec php-cgi. php-fpm a un interpréteur php intégré. , et le sous-processus de php-fpm est forké tout seul. Oui, il n'appellera pas php-cgi si vous supprimez php-cgi dans le système, cela n'affectera pas le fonctionnement normal du service php-fpm. 🎜>
php-fpm est un processus de travail sous la configuration pm = statique. Permanent en arrière-plan, c'est-à-dire que si vous configurez 5 processus de travail pm.max_children = 5, alors lorsque le service php-fpm démarrera, il le fera. supprime automatiquement 5 processus enfants et reste en arrière-plan, et ne se fermera pas une fois le traitement de la demande terminé. Ne se fermera pas en cas d'inactivité Si vous utilisez une connexion persistante à la base de données dans un script php, ces 5 processus de travail seront également établis et maintenus. 5 connexions persistantes à la base de données pour réutiliser la connexion à la base de données lors du traitement de plusieurs requêtes afin d'éviter d'établir/libérer une connexion à la base de données pour chaque requête. Les connexions persistantes peuvent également se reconnecter automatiquement après un délai d'attente, ce qui est complètement transparent pour le script dans php-fpm. Le script doit uniquement spécifier l'utilisation de connexions persistantes au démarrage. Oui.

php-fpm fonctionne dans la configuration pm = dynamique [partie] pour résider en arrière-plan, c'est-à-dire pour maintenir un certain nombre de processus résidents. Lorsque le service est occupé, davantage de processus seront bifurqués, et certains processus le seront. être automatiquement arrêté lorsque le service est inactif. Renvoyez les ressources mémoire au système d'exploitation. Les fournisseurs d'hôtes virtuels devraient préférer cette méthode

En bref, le mode de fonctionnement de PHP-FPM est similaire au MPM préfork d'Apache, un mode statique. et un service de réseau multi-processus dynamique.




php-cgi est l'un des premiers gestionnaires fastcgi produit par PHP officiel et n'est pas pris en charge. Pour un redémarrage en douceur, si vous modifiez php.ini, vous devez supprimer le php-cgi d'origine et le redémarrer pour prendre effet. La planification dynamique des travailleurs n'est pas prise en charge et vous pouvez uniquement spécifier le nombre de travailleurs à démarrer ; au début.

php-fpm est un gestionnaire de processus fastcgi qui n'a été ajouté que dans la version 5.3.3. Il ajoute une fonction de planification dynamique, qui peut augmenter ou diminuer dynamiquement le nombre de processus de travail en fonction des changements dans la pression entrante des demandes ; prend en charge la commande reload pour permettre au processus de travail de terminer le redémarrage après la requête en cours et applique la nouvelle configuration php.ini.





php54 était une relation avant, Une autre relation après php54.


Avant php54, php-fpm (compilation tierce) est le gestionnaire, php-cgi est l'interprète

Après php54, php-fpm ( officiel Livré avec), modes maître et pool. php-fpm et php-cgi n'ont rien à voir l'un avec l'autre. php-fpm est à la fois interprète et gestionnaire


Site de référence https://www.zhihu.com/question/55835080

https://segmentfault .com /q/1010000000256516

Recommandations associées :

Illustration de la relation entre CGI, FastCGI et PHP-FPM

linux view Le répertoire où se trouvent nginx, apache, php, php-fpm, mysql et les éléments de configuration

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment utiliser php-fpm pour un réglage hautes performances Comment utiliser php-fpm pour un réglage hautes performances Jul 08, 2023 am 11:30 AM

Comment utiliser php-fpm pour un réglage hautes performances PHP est un langage de script côté serveur très populaire, largement utilisé pour développer des applications Web et des sites Web dynamiques. Cependant, à mesure que le trafic augmente, les performances de votre application PHP peuvent en souffrir. Afin de résoudre ce problème, nous pouvons utiliser php-fpm (FastCGIProcessManager) pour un réglage hautes performances. Cet article expliquera comment utiliser php-fpm pour améliorer les performances des applications PHP et fournira des exemples de code. un,

Comment utiliser l'optimisation PHP-FPM pour améliorer les performances des applications PrestaShop Comment utiliser l'optimisation PHP-FPM pour améliorer les performances des applications PrestaShop Oct 05, 2023 pm 12:33 PM

Comment utiliser l'optimisation PHP-FPM pour améliorer les performances des applications PrestaShop Avec le développement rapide du secteur du commerce électronique, PrestaShop est devenue la plateforme de commerce électronique choisie par de nombreux commerçants. Cependant, à mesure que la taille de la boutique augmente et que le nombre de visites augmente, l'application PrestaShop peut rencontrer des goulots d'étranglement en termes de performances. Afin d'améliorer les performances de l'application PrestaShop, une méthode courante consiste à utiliser PHP-FPM pour optimiser et améliorer les capacités de traitement de l'application. PHP-FPM (FastCGI

Comment améliorer les performances de votre application WooCommerce grâce à l'optimisation PHP-FPM Comment améliorer les performances de votre application WooCommerce grâce à l'optimisation PHP-FPM Oct 05, 2023 am 08:24 AM

Comment améliorer les performances des applications WooCommerce à l'aide de l'optimisation PHP-FPM Présentation WooCommerce est un plugin de commerce électronique très populaire pour créer et gérer des boutiques en ligne sur des sites Web WordPress. Cependant, à mesure que votre boutique se développe et que le trafic augmente, les applications WooCommerce peuvent devenir lentes et instables. Pour résoudre ce problème, nous pouvons utiliser PHP-FPM pour optimiser et améliorer les performances des applications WooCommerce. Qu'est-ce que PHP-FP

Utilisez le pool de connexion php-fpm pour améliorer les performances d'accès à la base de données Utilisez le pool de connexion php-fpm pour améliorer les performances d'accès à la base de données Jul 07, 2023 am 09:24 AM

Présentation de l'utilisation du pool de connexions php-fpm pour améliorer les performances d'accès aux bases de données : Dans le développement Web, l'accès aux bases de données est l'une des opérations les plus fréquentes et les plus longues. La méthode traditionnelle consiste à créer une nouvelle connexion à la base de données pour chaque opération de base de données, puis à fermer la connexion après utilisation. Cette méthode entraînera l’établissement et la fermeture fréquents de connexions à la base de données, augmentant ainsi la surcharge du système. Afin de résoudre ce problème, vous pouvez utiliser la technologie de pool de connexions php-fpm pour améliorer les performances d'accès à la base de données. Principe du pool de connexions : Le pool de connexions est une technologie de mise en cache qui regroupe un certain nombre de bases de données

Explication détaillée de la méthode de réglage php-fpm Explication détaillée de la méthode de réglage php-fpm Jul 08, 2023 pm 04:31 PM

PHP-FPM est un gestionnaire de processus PHP couramment utilisé pour offrir de meilleures performances et stabilité PHP. Cependant, dans un environnement à forte charge, la configuration par défaut de PHP-FPM peut ne pas répondre aux besoins, nous devons donc l'ajuster. Cet article présentera en détail la méthode de réglage de PHP-FPM et donnera quelques exemples de code. 1. Augmentez le nombre de processus Par défaut, PHP-FPM ne démarre qu'un petit nombre de processus pour gérer les requêtes. Dans un environnement à charge élevée, nous pouvons augmenter la concurrence de PHP-FPM en augmentant le nombre de processus.

Comment utiliser l'optimisation PHP-FPM pour améliorer les performances des applications Phalcon Comment utiliser l'optimisation PHP-FPM pour améliorer les performances des applications Phalcon Oct 05, 2023 pm 01:54 PM

Comment utiliser PHP-FPM pour optimiser et améliorer les performances des applications Phalcon Introduction : Phalcon est un framework PHP haute performance. La combinaison avec PHP-FPM peut encore améliorer les performances des applications. Cet article expliquera comment utiliser PHP-FPM pour optimiser les performances des applications Phalcon et fournira des exemples de code spécifiques. 1. Qu'est-ce que PHP-FPMPHP-FPM (PHPFastCGIProcessManager) est un processus PHP indépendant du serveur web

Que faire si Ubuntu n'a pas php-fpm Que faire si Ubuntu n'a pas php-fpm Feb 03, 2023 am 10:51 AM

La solution pour Ubuntu sans php-fpm : 1. Ajoutez l'adresse source de PHP en exécutant la commande "sudo apt-get" ; 2. Vérifiez s'il existe un package php7 3. Installez PHP en exécutant la commande "sudo apt-get" ; install" ; 4. , modifiez la configuration pour écouter sur le port 9000 afin de gérer les requêtes nginx ; 5. Démarrez "php7.2-fpm" via "sudo service php7.2-fpm start".

Qu'est-ce que php-fpm ? Comment optimiser pour améliorer les performances ? Qu'est-ce que php-fpm ? Comment optimiser pour améliorer les performances ? May 13, 2022 pm 07:56 PM

Qu'est-ce que php-fpm ? L'article suivant vous amènera à comprendre php-fpm et à présenter ce que nous devons optimiser lors de l'optimisation de php-fpm. J'espère qu'il sera utile à tout le monde !

See all articles