Maison >développement back-end >tutoriel php >Comparaison des deux méthodes de déploiement de PHP et Nginx (photo)

Comparaison des deux méthodes de déploiement de PHP et Nginx (photo)

黄舟
黄舟original
2017-06-18 09:31:461462parcourir

Cet article présente principalement des informations pertinentes sur la comparaison des deux méthodes de déploiement de Nginx et PHP. Les amis qui en ont besoin peuvent s'y référer .

Explication détaillée de la comparaison entre les deux méthodes de déploiement de Nginx et PHP

2 méthodes de déploiementIntroduction

Le premier type

  • 1 serveur nginx devant pour le proxy inverse HTTP et l'équilibrage de charge

  • à l'arrière, Nginx de Nether Server fournit des services Web et appelle le service cgi rapide fourni par php-fpm

  • Cette méthode de déploiement est la plus courante. Les services Web et les services PHP sont tous deux présents sur le serveur. même serveur. Déploiement

Deuxième type

  1. Placer 1 serveur nginx devant pour le service Web

  2. Le serveur arrière déploie uniquement le service php-fpm pour que le serveur nginx appelle. Réalisez l'équilibrage de charge

  3. comme indiqué ci-dessous :

  4. <.>

Comparaison

Du point de vue de la conception du système

La première méthode de déploiement convient aux sites Web à grande, moyenne et petite échelle

Le deuxième est que différents services sont déployés sur différents serveurs, mais il y a plusieurs problèmes :

Le front-end nginx agit comme un service Web. Les ressources >statiques

, la transmission de compression, les paramètres de

mise en cache

, etc. sont également concentrés ici sur un serveur. La pression sera grande et cela peut facilement devenir un goulot d'étranglement. 🎜>
    Si les ressources statiques sont stockées dans CDN et ne nécessitent pas de transmission par compression HTTP, cette méthode de déploiement est relativement raisonnable
  • Héritant des deux points ci-dessus, cette méthode de déploiement peut ; également être optimisé, comme l'équilibrage de charge nginx et le proxy inverse au milieu, et le service php-fpm déployé à l'arrière

  • Par rapport à la deuxième méthode de déploiement, la première méthode nécessite. une interaction inter-processus supplémentaire.
  • Selon la première méthode de 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 (interaction inter-processus
  • Selon le deuxième déploiement, lorsqu'une requête http arrive, nginx, qui fait office de service Web, interagit directement avec php-fpm via le réseau

    Dans le premier déploiement, l'interaction via le réseau est le protocole HTTP, le deuxième type d'interaction via le réseau est le rapide- protocole cgi. Comment ces deux protocoles se comparent-ils ?
  1. 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. que HTTP. Le protocole cgi rapide est formaté plus strictement que le protocole HTTP et est plus rapide à analyser. Du point de vue de l'exploitation et de la maintenance

  2. 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.
  3. 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, sans proxy inverse ni équilibrage de charge.

Résumé

S'il s'agit d'un déploiement dans un environnement LAMP, le premier type est plus courant.

S'il ne s'agit pas de LAMP, c'est nginx qui interagit avec d'autres services fastcgi, tels que les programmes C/C++ et Java fastcgi. Dans les applications réseau à grande échelle, un déploiement similaire au second est courant. Le déploiement séparé de différents services simplifie la structure réseau du système et facilite la maintenance.

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