1. PHP-Betriebsmodus unter Apache und ngnix.
1) Unter Apache gibt es drei Betriebsmodi: CGI-Modus, modularer Modus und FastCGI-Modus.
Der CGI-Modus ist ist eine relativ primitive Methode, ruft php.exe jedes Mal auf, wenn es eine erhält Anfrage, Parsen von php.ini, Laden von DLL usw. ist natürlich langsam.
Im modularen Modus führt Apache PHP standardmäßig auf diese Weise aus, d. h. es kompiliert PHP in sich selbst Da es sich um ein eigenes Modul handelt, muss bei der Verarbeitung von PHP-Skripten nicht das Programm php.exe aufgerufen werden. Nur der Apache-Prozess übernimmt den gesamten Prozess, der relativ stabil ist.
Der FastCGI-Modus ist eine aktualisierte Version des CGI-Modus, implementiert Technische Funktionen ähnlich dem Verbindungspool halten die Verbindung zum Hintergrund aufrecht. Sobald die Anfrage eintrifft, wird die Verbindung getrennt und die Verbindung zur nächsten Anfrage vorbereitet jedes Mal anrufen.
Blockierungstyp, für jede Anfrage wird ein Prozess erstellt , im Gegensatz zu Nginx, das mehrere Anfragen mit demselben Prozess verarbeiten kann.
2), CGI wird unter dem Nginx-Server nicht unterstützt und läuft standardmäßig im FastCGI-Modus und da es asynchron und nicht blockierend ist, unterstützt es Szenarien mit hoher Parallelität .
2. Vorteile von Nginx gegenüber Apache: 1 und beansprucht weniger Speicher und Ressourcen als Apache 2. Anti-Parallelität, Nginx verarbeitet Anfragen asynchron und nicht blockierend, während Apache blockiert (synchroner Multiprozess) , Nginx kann bei hoher Parallelität einen geringen Ressourcenverbrauch und eine hohe Leistung aufrechterhalten 3 Hochmodulares Design, das Schreiben von Modulen ist relativ einfach 4 Community ist aktiv und verschiedene Hochleistungsmodule werden schnell produziert
3. Vorteile von Apache gegenüber Nginx:
1. Rewrite, leistungsfähiger als Nginx's Rewrite
2. Die Verarbeitungsleistung dynamischer Seiten ist besser als bei Nginx
3. Es gibt so viele Module, dass man im Grunde alles finden kann, was man sich vorstellen kann 4. Wenige Fehler, Nginx hat relativ viele Fehler
5. Super stabil
Existenz ist der Grund. Im Allgemeinen Webdienste, die Leistung erfordern, verwenden Nginx. Wenn Sie keine Leistung benötigen und nur Stabilität wollen, dann verwenden Sie Apache .
Die verschiedenen Funktionsmodule des letzteren sind besser implementiert als das erstere. Beispielsweise ist das SSL-Modul besser als das erstere und verfügt über mehr konfigurierbare Elemente. Hier ist zu beachten, dass das Netzwerk-E/A-Modell von epoll (kqueue auf freebsd) der Hauptgrund für die hohe Verarbeitungsleistung von Nginx ist, aber nicht alle Situationen sind der Gewinner von epoll. Wenn es statische Dienste bereitstellt, nur wenige Dateien, kann das ausgewählte Modell von Apache verwendet werden Seien Sie leistungsfähiger als Epoll. Dies ist natürlich nur eine Annahme, die auf den Prinzipien des Netzwerk-IO-Modells basiert. Die tatsächliche Anwendung muss noch getestet werden, bevor darüber gesprochen wird.
4. Als Webserver: Im Vergleich zu Apache verbraucht Nginx weniger Ressourcen , Unterstützt mehr gleichzeitige Verbindungen und spiegelt eine höhere Effizienz wider.
Dies macht Nginx besonders bei Webhosting-Anbietern beliebt. Bei hoher Verbindungsgleichzeitigkeit ist Nginx eine gute Alternative zum Apache-Server: Nginx ist eine der von Chefs im virtuellen Host-Geschäft in den USA häufig gewählten Softwareplattformen. Sie kann Antworten von bis zu 50.000 gleichzeitigen Verbindungen unterstützen. Danke an Nginx, dass Sie sich für epoll und kqueue als Entwicklungsmodell für uns entschieden haben Nginx als Lastausgleichsserver: Nginx kann Rails- und PHP-Programme nicht nur direkt für die externe Bereitstellung unterstützen intern, unterstützt ihn aber auch als Lastausgleichsserver und stellt externe Dienste bereit. Nginx ist in C geschrieben und sein Systemressourcenaufwand und die CPU Die Nutzungseffizienz ist viel besser als bei Perlbal. Als Mail-Proxy-Server: Nginx ist auch ein sehr guter Mail-Proxy-Server (einer der ersten Zwecke bei der Entwicklung dieses Produkts war auch die Verwendung als Mail-Proxy-Server). , Last.fm beschreibt das erfolgreiche und wunderbare Nutzungserlebnis. Nginx ist ein Server, der sehr einfach zu installieren ist, eine sehr übersichtliche Konfigurationsdatei hat (er kann auch Perl-Syntax unterstützen) und sehr Wenige Fehler: Nginx ist sehr einfach zu starten und kann fast rund um die Uhr ohne Unterbrechung laufen. Auch wenn es mehrere Monate läuft, ist kein Neustart erforderlich
5. Die Nginx-Konfiguration ist einfach, Apache ist komplex. Die statische Verarbeitungsleistung von Nginx ist besser als Apache Mehr als dreimal höher Apaches Unterstützung für PHP ist relativ einfach, Nginx muss mit anderen Backends verwendet werden Apache hat mehr Komponenten als Nginx Jetzt ist Nginx die erste Wahl für Webserver
6. Der Hauptunterschied besteht darin, dass Apache ein synchrones Multiprozessmodell ist , eine Verbindung entspricht zu einem Prozess; nginx ist asynchron , mehrere Verbindungen (10.000 Ebenen) können einem Prozess entsprechen
7. Nginx kann statische Dateien gut verarbeiten und verbraucht weniger Speicher. Es besteht jedoch kein Zweifel daran, dass Apache derzeit immer noch der Mainstream ist und über viele umfangreiche Funktionen verfügt Wenn festgestellt wird, dass Nginx den Anforderungen entspricht, ist die Verwendung von Nginx eine kostengünstigere Methode. Apache hat den Nachteil, dass es keine Multi-Core-Verarbeitung unterstützt Es wird empfohlen, Nginx als Frontend und Apache als Backend zu verwenden. Es wird empfohlen, dass große Websites die Cluster-Funktion von Nginx verwenden. Informationen zur Konfiguration von LNMPA finden Sie unter http://www.freehao123.com/lnmpa/ 8. Gemessen an der persönlichen Nutzung in der Vergangenheit ist die Ladekapazität von Nginx viel höher als die von Apache. Der neueste Server verwendet auch Nginx. Darüber hinaus können Sie nach dem Ändern der Konfiguration von Nginx testen, ob die Konfiguration korrekt ist.
Beim Neustart von Apache wird festgestellt, dass die Konfiguration falsch ist und ich beim Vornehmen von Änderungen sehr vorsichtig sein werde Nginx Anti-Parallelität, Back-End-Apache-Cluster ,
Auch die Zusammenarbeit ist gut.
9. Nginx ist für die Verarbeitung dynamischer Anfragen unbrauchbar. Im Allgemeinen müssen dynamische Anfragen von Apache und Nginx ausgeführt werden ist nur für statische und umgekehrte Anfragen geeignet. 10. Aus meiner persönlichen Erfahrung ist nginx ein sehr guter Front-End-Server mit guter Lastleistung , in Laoben Nginx einschalten und verwenden Sie Webbench, um problemlos 10.000 statische Dateianforderungen zu simulieren. Apache bietet eine gute Unterstützung für Sprachen wie PHP. Darüber hinaus verfügt Apache über ein starkes Support-Netzwerk und wurde schon länger entwickelt als Nginx. 11. Es gibt Zwei Hauptgründe, warum Nginx besser ist als Apache: 1. Nginx selbst ist ein Reverse-Proxy-Server. 2. Nginx unterstützt 7-Layer-Lastausgleich ; besser als
Apache unterstützt eine höhere Parallelität, aber laut NetCraft-Statistiken machte Apache im April 2011 immer noch 62,71 % aus, während Nginx 7,35 % betrug. Daher ist Aapche aufgrund seiner ausgereiften Technologie und Entwicklung im Allgemeinen immer noch die erste Wahl für die meisten Unternehmen Die Community hat bereits eine sehr gute Leistung. 12. Ihre Anforderungen an den Webserver bestimmen Ihre Wahl. Groß
In einigen Fällen ist Nginx besser als APACHE, z. B. statische Dateiverarbeitung, PHP-CGI-Unterstützung, Reverse-Proxy-Funktion, Front-End-Cache, Aufrechterhaltung von Verbindungen usw. existieren
Wenn im Apache+PHP-Modus (Prefork) die PHP-Verarbeitung langsam ist oder der Front-End-Druck hoch ist, kann es leicht zu einem Anstieg der Anzahl der Apache-Prozesse kommen, was zu einem Denial-of-Service führt. 13. Sie können einen Blick auf das Nginx-Lua-Modul werfen: https://github.com/chaoslaw... Apache hat mehr Module als Nginx und kann direkt verwendet werden Lua ist die beliebteste Implementierung von Apache, warum? Die meisten Leute sind zu faul, um auf Nginx zu aktualisieren oder neue Dinge zu lernen Die Konfiguration ermöglicht viele Dinge. Sie wird einfach und effizient, benötigt weniger Ressourcen und verfügt über leistungsstarke Proxy-Funktionen. Sie eignet sich sehr gut für Front-End-Antwortserver 13 >Apache hat Vorteile bei der Handhabung von Dynamik und Nginx-Parallelität. Die Leistung ist relativ gut und die CPU-Speicherauslastung ist gering. Wenn häufig neu geschrieben wird, ist es besser, Apache zu verwenden Urheberrechtserklärung: Dieser Artikel ist ein Originalartikel des Bloggers und darf nicht ohne die Erlaubnis des Bloggers reproduziert werden.
Das Obige stellt den Vergleich zwischen Apache und NGNIX vor, einschließlich inhaltlicher Aspekte. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.