Maison  >  Article  >  développement back-end  >  Explication détaillée du principe de fonctionnement de Nginx+Php-fpm

Explication détaillée du principe de fonctionnement de Nginx+Php-fpm

移动用户-8334543
移动用户-8334543original
2022-06-16 16:43:47175parcourir

1. Processus d'accès de l'utilisateur à la page Web PHP dynamique

étape 1 : L'utilisateur envoie une requête http au serveur nginx
étape 2 : nginx jugera la demande en fonction de l'URI et du suffixe visités par l'utilisateur
étape 3 : Comme on peut le voir à partir de la deuxième étape, si l'utilisateur demande du contenu dynamique, nginx transmettra la demande au client fastcgi et enverra la demande de l'utilisateur à php-fpm via fastcgi_pass. Si l'utilisateur accède à des ressources statiques, c'est simple. contenu statique demandé par l'utilisateur. La ressource est renvoyée à l'utilisateur.
étape 4 : Une fois que le wrapper a reçu la requête transférée depuis php-fpm, le wrapper générera un nouveau thread pour appeler le serveur d'analyse du programme dynamique php
étape 5 : php renverra les résultats de la requête à nginx
étape 6 : nginx construit une réponse. message. Renvoie les résultats à l'utilisateur

protocole cgi


protocole de communication cgi

protocole fastcgi

le protocole fastcgi est une amélioration supplémentaire à l'efficacité du protocole cgi, principalement pour l'optimisation de la nécessité de démarrer un interpréteur cgi. processus à chaque fois qu'une requête arrive. Le processus de l'interpréteur cgi n'a plus besoin de recharger le fichier php.ini et d'initialiser l'environnement d'exécution à chaque fois qu'il reçoit une requête du serveur Web

gestionnaire de processus php-fpm

php-fpm est une implémentation de le protocole fastcgi et est un gestionnaire de processus, il comprend deux parties : les processus maître et de travail au démarrage. Le processus maître est responsable de la gestion du processus de travail. Il existe généralement plusieurs processus de travail qui sont utilisés pour écouter les ports et recevoir les demandes du processus de travail. serveur Web, et chaque processus de travail dispose d'un interpréteur de processus cgi pour exécuter le code PHP

Quels sont les protocoles à cinq couches de TCP ?


Couche application, couche transport, couche réseau, couche liaison de données, couche physique


Parlez de la poignée de main à trois voies TCP ?


1. Le client envoie un segment de demande de connexion au serveur, avec SYN défini sur 1, puis sélectionne un numéro de séquence de départ seq=x

2 Une fois que le serveur a reçu le segment de demande, il l'envoie au client. Le client envoie un segment de message de confirmation, dans lequel SYN et ACK sont définis sur 1, le champ du numéro de confirmation est x+1 et un numéro de séquence de départ seq=y

3 est généré lorsque le client reçoit le segment de message de confirmation, il doit également ensuite envoyer un segment de message de confirmation au serveur, dans lequel ACK est défini sur 1, le champ du numéro de confirmation est y+1 et le champ du numéro de séquence est x+1

Remarque : SYN est le numéro de séquence de synchronisation, et ACK est la marque du numéro de séquence de confirmation

nginx reçoit la requête, recherche le fichier php auquel accéder en fonction du port d'écoute, établit une connexion avec l'un des programmes fast-cgi de la mémoire résidente via le socket et transmet le reçu. données vers fast-cgi. php-fpm gère le processus fast-cgi et se bloque. Puis redémarrez-le, fast-cgi exécute le programme php et, après avoir terminé l'acquisition des données, le renvoie à nginx via la connexion et le renvoie à l'utilisateur. client.

Quelle est la différence entre cookie et session ?

1. Les cookies sont stockés sur le navigateur et les sessions sont stockées sur le serveur

2 D'autres peuvent analyser les cookies locaux pour effectuer une usurpation de cookies, tenez compte de la sécurité lors de l'application des sessions

3. , pendant la navigation Le serveur n'a aucune restriction sur les sessions

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