Introduction à 2 méthodes de déploiement
La première
1 serveur nginx en face pour le proxy inverse http et l'équilibrage de charge
Le nginx du serveur n à l'arrière fait le service web et les appels php -Service cgi rapide fourni par fpm
Ce type de méthode de déploiement est le plus courant. Le service Web et le service php sont déployés sur le même serveur
Le deuxième type
Un serveur nginx. devant Faire des services Web
Le serveur arrière déploie uniquement le service php-fpm, qui est appelé par le serveur nginx
Un serveur nginx est installé à l'avant. Lors de l'appel ultérieur de plusieurs services php-fpm, chargez. l'équilibrage peut également être atteint
Comme indiqué ci-dessous :
Comparaison
Du point de vue de la conception du système
La première méthode de déploiement est la méthode de déploiement conventionnelle, qui peut être appliquée aux grandes, moyennes et petites sites Web à grande échelle.
La deuxième méthode consiste à déployer différents services sur différents serveurs, ce qui est plus détaillé. Mais il y a aussi plusieurs problèmes :
Le front-end nginx agit comme un service web. Tous les paramètres d’accès aux ressources statiques, de transfert de compression et de mise en cache sont centralisés sur ce serveur. Il y aura beaucoup de pression et cela peut facilement devenir un goulot d’étranglement.
Si les ressources statiques sont toutes stockées dans CDN et ne nécessitent pas de transmission par compression HTTP, cette méthode de déploiement est tout à fait raisonnable.
Conformément aux deux points ci-dessus, cette méthode de déploiement peut également être optimisée ; Après la couche d'équilibrage de charge et de proxy inverse à l'avant, il y a un serveur Web Nginx au milieu et un service PHP-FPM est déployé derrière lui. Du point de vue des performances
Par rapport à la deuxième méthode de déploiement, la première méthode nécessite une interaction inter-processus supplémentaire.
Selon le premier déploiement, lorsqu'une requête http arrive, le proxy inverse nginx la transmet d'abord au service Web nginx (via le réseau), et le service Web interagit avec php-fpm via le protocole fastcgi (inter- interaction de processus);
Selon le deuxième déploiement, lorsqu'une requête http arrive, nginx, qui agit comme un service Web, interagit directement avec php-fpm via le réseau
Dans le premier déploiement, le protocole http est utilisé pour interagir via le réseau, et dans le second, ce qui interagit via le réseau est le protocole fast-cgi. Comment ces deux protocoles se comparent-ils ?
Les paquets de données Fast CGI seront légèrement plus volumineux que http, et le protocole Fast CGI transportera plus d'informations sur les paramètres, les informations de contrôle de transmission, etc. Le protocole rapide cgi est plus strictement formaté que le protocole http et est plus rapide à analyser. Du point de vue de l'exploitation et de la maintenance
La première est la méthode de déploiement la plus courante, qui est simple et unifiée. Les services sur tous les serveurs qui fournissent des services Web sont isomorphes, ce qui est monotone et étendu.
La seconde consiste à déployer nginx et php-fpm séparément, et la répartition des différents services sur le cluster de serveurs est plus détaillée. Si vous comptez la répartition de la pression dans les services Web, vous pouvez utiliser les ressources matérielles de manière plus précise. Les coûts d’exploitation et de maintenance sont également plus élevés.
Du point de vue du développement et des tests
Les deux méthodes de déploiement ne conviennent pas aux environnements de développement ou de test.
Dans l'environnement de développement et de test, nginx et php peuvent être déployés sur un seul serveur. Le proxy inverse et l'équilibrage de charge ne sont pas requis.
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!