Heim >Backend-Entwicklung >PHP-Tutorial >Vergleich zweier Bereitstellungsmethoden von Nginx und PHP

Vergleich zweier Bereitstellungsmethoden von Nginx und PHP

WBOY
WBOYOriginal
2016-07-29 09:12:531011Durchsuche

Einführung in 2 Bereitstellungsmethoden

Die erste Methode

  • Bereiten Sie einen Nginx-Server für HTTP-Reverse-Web bereit Dienste für den Nginx hinter dem Proxy und Lastausgleich
  • und rufen Sie den von php-fpm bereitgestellten schnellen CGI-Dienst auf
  • Diese Bereitstellungsmethode ist die gebräuchlichste Web-Dienste und PHP-Dienste in beiden Fällen auf demselben Server bereitgestellt

Der zweite Typ

  • Ein Nginx-Server wird vorne für Webdienste bereitgestellt
  • Zurück Der Server stellt den PHP-FPM-Dienst nur für den Aufruf des Nginx-Servers
  • bereit, wobei ein Nginx-Server später aufgerufen wird, kann auch ein Lastausgleich erreicht werden

Wie unten gezeigt:

Nginx 和 PHP 的两种部署方式比较

Vergleich

Aus Sicht des Systemdesigns

Die erste Art der Bereitstellung ist die herkömmliche Bereitstellungsmethode, die auf große, mittlere und kleine Websites angewendet werden kann.

Die zweite Methode besteht darin, verschiedene Dienste auf verschiedenen Servern bereitzustellen, was detaillierter ist. Es gibt aber auch mehrere Probleme:

  • Front-End-Nginx fungiert als Webdienst. Auch der Zugriff auf statische Ressourcen, Komprimierungsübertragung, Cache-Einstellungen usw. ist auf diesem Server konzentriert. Der Druck ist groß und es kann leicht zu einem Engpass kommen.
  • Wenn statische Ressourcen im CDN gespeichert sind und keine HTTP-Komprimierungsübertragung erfordern, ist diese Bereitstellungsmethode durchaus sinnvoll.
  • In Übereinstimmung mit den beiden oben genannten Punkten kann diese Bereitstellungsmethode auch optimiert werden. Beispielsweise werden Nginx-Lastausgleich und Reverse-Proxy vorne platziert, der Nginx-Webdienst befindet sich in der Mitte und der PHP-FPM-Dienst wird dahinter bereitgestellt.

Aus Sicht der Leistung

Im Vergleich zur zweiten Bereitstellungsmethode erfordert die erste Methode eine weitere Interaktion zwischen Prozessen.

  • Gemäß der ersten Bereitstellung leitet der Nginx-Reverse-Proxy eine HTTP-Anfrage zunächst an den Nginx-Webdienst weiter (über das Netzwerk), und der Webdienst interagiert mit PHP-FPM über fastcgi-Protokoll (Prozessinteraktion);
  • Gemäß der zweiten Bereitstellung interagiert Nginx, das als Webdienst fungiert, direkt mit PHP-FPM über das Netzwerk, wenn eine HTTP-Anfrage eingeht

Die erste Bereitstellung, die über das Netzwerk interagiert, ist das HTTP-Protokoll, und die zweite, die über das Netzwerk interagiert, ist das Fast-CGI-Protokoll. Wie vergleichen sich diese beiden Protokolle?

  • Fast-CGI-Datenpakete sind etwas größer als HTTP, und das Fast-CGI-Protokoll überträgt mehr Parameterinformationen, Übertragungssteuerungsinformationen usw. als HTTP.
  • Das schnelle CGI-Protokoll ist strenger formatiert als das HTTP-Protokoll und lässt sich schneller analysieren.

Aus Betriebs- und Wartungssicht

  • Die erste ist die gebräuchlichste Bereitstellungsmethode, einfach und einheitlich, alle Server bieten Webdienste Die Dienste auf der Website sind alle homogen, eintönig und umfangreich.

  • Die zweite besteht darin, Nginx und PHP-FPM separat bereitzustellen, und die Verteilung verschiedener Dienste auf dem Servercluster ist detaillierter. Wenn Sie die Druckverteilung in Webdiensten zählen, können Sie Hardwareressourcen präziser nutzen. Auch die Betriebs- und Wartungskosten sind höher.

Aus Entwicklungs- und Testperspektive

Beide Bereitstellungsmethoden sind nicht für Entwicklungs- oder Testumgebungen geeignet.

In der Entwicklungs- und Testumgebung können Nginx und PHP auf einem Server bereitgestellt werden, ohne Reverse-Proxy und Lastausgleich.

Zusammenfassung

Wenn es sich um eine LAMP-Umgebungsbereitstellung handelt, ist der erste Typ häufiger anzutreffen.

Wenn es sich nicht um LAMP handelt, interagiert Nginx mit anderen FastCGI-Diensten wie C/C++- und Java-FastCGI-Programmen. In großen Netzwerkanwendungen ist eine Bereitstellung ähnlich der zweiten Variante üblich. Die getrennte Bereitstellung verschiedener Dienste vereinfacht die Netzwerkstruktur des Systems und erleichtert die Wartung.

Postscript

Der Inhalt dieses Blogbeitrags stammt aus Diskussionen mit ehemaligen Baidu-Kollegen in der QQ-Gruppe.

Bitte geben Sie die Quelle für den Nachdruck an

Blog-Homepage: Zuochengs technischer Blog

Artikeltitel: „Nginx Vergleich mit zwei Bereitstellungsmethoden von PHP》

Link zu diesem Artikel: http://it.zuocheng.net/compare-2-nginx-php-deployee-mode-zh


Das Obige hat den Vergleich der beiden Bereitstellungsmethoden von Nginx und PHP vorgestellt, einschließlich der relevanten Aspekte. Ich hoffe, dass es für Freunde hilfreich sein wird, die sich für PHP-Tutorials interessieren.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn