Maison > Opération et maintenance > Nginx > le corps du texte

Comment phpfpm et nginx communiquent

(*-*)浩
Libérer: 2019-11-20 10:02:03
original
3040 Les gens l'ont consulté

Comment phpfpm et nginx communiquent

Principe de FastCGI

FastCGI est une interface utilisée pour la communication entre HttpServer et les langages de script dynamiques. prend en charge FastCGI, notamment Apache, Nginx et lighttpd. Dans le même temps, FastCGI est également pris en charge par de nombreux langages de script, dont PHP. (Apprentissage recommandé : Tutoriel Nginx)

L'interface FastCGI adopte une structure C/S, qui peut séparer le serveur HttP et le serveur d'analyse de script, et démarrer un ou plusieurs scripts sur le serveur d'analyse de script en même temps, le démon Parse.

Chaque fois que le serveur HttP rencontre un programme dynamique, il peut être livré directement au processus FastCGI pour exécution, puis le résultat est renvoyé au client. Cette méthode permet au serveur HttP de traiter exclusivement les requêtes statiques ou de renvoyer les résultats du serveur de script dynamique au client, ce qui améliore considérablement les performances de l'ensemble du système applicatif.

Principe d'implémentation de Nginx+php-fpm

Nginx lui-même n'analysera pas PHP, et les requêtes du terminal pour les pages PHP seront transmises à FastCGI par Nginx. L'adresse IP et le port surveillés par le processus sont traités par php-fpm en tant que serveur d'analyse dynamique, et les résultats du traitement sont finalement renvoyés à nginx.

En fait, Nginx est un serveur proxy inverse. Nginx transmet les requêtes dynamiques au backend php-fpm via la fonction de proxy inverse, réalisant ainsi la prise en charge de l'analyse PHP. C'est le principe de Nginx implémentant l'analyse dynamique PHP.

Nginx ne prend pas en charge l'appel direct ou l'analyse de programmes externes. Tous les programmes externes (y compris PHP) doivent être appelés via l'interface FastCGI.

L'interface FastCGI est une socket sous Linux (cette socket peut être une socket file ou une socket ip). Pour appeler un programme CGI, un wrapper FastCGI est également nécessaire (un wrapper peut être compris comme un programme utilisé pour démarrer un autre programme. Ce wrapper est lié à un socket fixe, tel qu'un port ou un socket de fichier).

Lorsque Nginx envoie une requête CGI à ce socket, via l'interface FastCGI, le wrapper reçoit la requête puis génère un nouveau thread. Ce thread appelle l'interpréteur ou le programme externe pour traiter le script et lire les données de retour. . Ensuite, le wrapper transmet les données renvoyées à Nginx via l'interface FastCGI et enfin, via le socket fixe, Nginx envoie les données renvoyées au client.

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!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!