Maison  >  Article  >  développement back-end  >  La relation entre nginx et php-fpm

La relation entre nginx et php-fpm

(*-*)浩
(*-*)浩original
2019-09-03 13:19:314046parcourir

La relation entre nginx et php-fpm

php-fpm est le gestionnaire de processus fastCGI(apprentissage recommandé : tutoriel vidéo web front-end)

1 . Web Chargez le gestionnaire de processus FastCGI (IIS ISAPI ou Apache Module) lorsque le serveur démarre la connexion au serveur.

3. Lorsque la requête du client atteint le serveur Web, le gestionnaire de processus FastCGI sélectionne et se connecte à un interpréteur CGI. Le serveur Web envoie des variables d'environnement CGI et des entrées standard au sous-processus FastCGI php-cgi.

4. Une fois le sous-processus FastCGI terminé, il renvoie la sortie standard et les informations d'erreur au serveur Web à partir de la même connexion. Lorsque le processus enfant FastCGI ferme la connexion, la demande est traitée. Le processus enfant FastCGI attend et gère ensuite la prochaine connexion du gestionnaire de processus FastCGI (exécuté sur le serveur Web). En mode CGI, php-cgi se termine à ce stade.

Dans le cas ci-dessus, vous pouvez imaginer à quel point CGI est généralement lent. Chaque requête Web adressée à PHP doit réanalyser php.ini, recharger toutes les extensions et réinitialiser toutes les structures de données. Avec FastCGI, tout cela ne se produit qu’une seule fois, au démarrage du processus. Un avantage supplémentaire est que les connexions persistantes aux bases de données fonctionnent.

FastCGI est un protocole qui sert de pont entre les applications et les serveurs WEB. Nginx ne peut pas communiquer directement avec PHP-FPM, mais transmet la requête à PHP-FPM pour traitement via FastCGI.

location ~ \.php$ {
    try_files $uri /index.php =404;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_buffers 16 16k;
    fastcgi_buffer_size 32k;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}
Ici, fastcgi_pass transmet toutes les requêtes php à php-fpm pour traitement. Vous pouvez voir grâce à la commande netstat que le processus exécuté sur le port 127.0.0.1:9000 est php-fpm.

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:
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
Article précédent:Que peut faire phpmyadmin ?Article suivant:Que peut faire phpmyadmin ?