Heim >Backend-Entwicklung >PHP-Tutorial >Vergleich der Vor- und Nachteile von Apache und Nginx

Vergleich der Vor- und Nachteile von Apache und Nginx

WBOY
WBOYOriginal
2016-08-08 09:30:19862Durchsuche

http://blog.csdn.net/xifeijian/article/details/17385741

1. Vorteile von Nginx gegenüber Apache:
Leicht, kann auch als Webdienst dienen . Beansprucht weniger Speicher und Ressourcen als Apache
Anti-Parallelität, Nginx verarbeitet Anfragen asynchron und nicht blockierend, während Apache bei hoher Parallelität niedrige Ressourcen, geringen Verbrauch und hohe Leistung aufrechterhalten kann
Hochmodular Was das Design angeht, ist das Schreiben von Modulen relativ einfach
Die Community ist aktiv und verschiedene Hochleistungsmodule werden schnell erstellt


Die Vorteile von Apache gegenüber Nginx: Rewrite, leistungsfähiger als Nginx's Rewrite

Dynamische Seite

Es gibt so viele Module, dass man im Grunde alles finden kann, was man sich vorstellen kann
Wenige Fehler, Nginx hat relativ viele Fehler

Super stabil

Der Grund für seine Existenz ist: Im Allgemeinen verwenden Webdienste, die Leistung erfordern, 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 in der Praxis getestet werden.
2. Als Webserver verbraucht Nginx weniger Ressourcen, unterstützt mehr gleichzeitige Verbindungen und weist eine höhere Effizienz auf. Dies macht Nginx besonders bei Anbietern virtueller Hosts 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 und kann Antworten von bis zu 50.000 gleichzeitigen Verbindungen unterstützen. Vielen Dank an Nginx dafür. Wir haben epoll und kqueue als Entwicklungsmodell ausgewählt.
Nginx als Lastausgleichsserver: Nginx kann nicht nur Rails- und PHP-Programme intern unterstützen, um externe Dienste bereitzustellen, sondern auch externe Dienste als HTTP-Proxy Da Nginx in C geschrieben ist, sind sowohl der Systemressourcenaufwand als auch die CPU-Nutzungseffizienz viel besser als bei Perlbal war auch als Mail-Proxy-Server), Last.fm beschreibt ein erfolgreiches und wunderbares Nutzungserlebnis
Nginx ist ein Server, der sehr einfach zu installieren ist, eine sehr übersichtliche Konfigurationsdatei hat (er kann auch Perl-Syntax unterstützen) und weist nur sehr wenige Fehler auf: Nginx ist extrem einfach zu starten und fast alles kann ausgeführt werden. Es kann rund um die Uhr ohne Unterbrechung ausgeführt werden und muss nicht neu gestartet werden, selbst wenn es mehrere Monate lang läuft. Sie können die Softwareversion auch aktualisieren ohne den Dienst zu unterbrechen.
3. Die Nginx-Konfiguration ist einfach, Apache ist kompliziert.
Nginx ist statisch. Die Verarbeitungsleistung ist mehr als dreimal höher als die von Apache.
Apaches Unterstützung für PHP ist relativ einfach und Nginx benötigt zur Verwendung mit anderen Backends
Apache verfügt über mehr Komponenten als Nginx
Jetzt ist Nginx die erste Wahl für Webserver und viele große Internetunternehmen verwenden Nginx bereits.
4.
Der Hauptunterschied besteht darin, dass Apache ein synchrones Multiprozessmodell ist und eine Verbindung einem Prozess entspricht; mehrere Verbindungen (10.000 Ebenen) können einem Prozess entsprechen

5. Nginx verarbeitet statische Dateien gut und verbraucht weniger Speicher. Es besteht jedoch kein Zweifel, dass Apache immer noch über viele umfangreiche Funktionen verfügt Stellen Sie fest, dass Nginx Ihren Anforderungen entspricht, und verwenden Sie dann Nginx. Dies ist eine wirtschaftlichere Methode.

Apache hat den Nachteil, dass es keine Multi-Core-Verarbeitungslast unterstützt. Es wird empfohlen, Nginx als Frontend zu verwenden und Apache als Backend. Für große Websites wird empfohlen, die mit Nginx gelieferte Cluster-Funktion zu verwenden

6. Aus Nutzungssicht ist die Ladekapazität von Nginx viel höher als die von Apache. Darüber hinaus können Sie nach dem Ändern der Nginx-Konfiguration testen, ob ein Problem mit der Konfiguration vorliegt. Beim Neustart wird festgestellt, dass die Konfiguration falsch ist, und ich werde beim Vornehmen von Änderungen sehr vorsichtig sein Es gibt viele Cluster-Sites. Der Front-End-Nginx ist Anti-Parallelität, und der Back-End-Apache-Cluster ist ebenfalls gut zusammenarbeiten.


7. Nginx ist für die Verarbeitung dynamischer Anforderungen nutzlos. Im Allgemeinen ist Apache für die Verarbeitung dynamischer Anforderungen erforderlich, und Nginx ist nur für statische und umgekehrte Anforderungen geeignet.
8. Nginx ist ein sehr guter Front-End-Server mit guter Ladeleistung. Es ist mühelos, Nginx auf Laoben zu öffnen und Webbench zu verwenden, um 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 über einen längeren Zeitraum entwickelt als Nginx.
9. Es gibt zwei Hauptgründe, warum Nginx besser ist als Apache: 1. Nginx selbst ist ein Reverse-Proxy-Server. 2. Nginx unterstützt natürlich Layer 7 Load Balancing. Nginx unterstützt möglicherweise eine höhere Parallelität als Apache.
10. Ihre Anforderungen an den Webserver bestimmen Ihre Wahl. In den meisten Fällen ist Nginx besser als APACHE, z. B. statische Dateiverarbeitung, PHP-CGI-Unterstützung, Reverse-Proxy-Funktion, Front-End-Cache, Verbindungswartung usw. 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.
11. Sie können einen Blick auf das Nginx-Lua-Modul werfen: https://github.com/chaoslaw... Apache hat mehr Module, die direkt mit Lua implementiert werden können ? Die meisten Menschen sind zu faul, um auf Nginx zu aktualisieren oder neue Dinge zu lernen.
12. Die Konfigurationsdatei von Nginx ist sehr präzise geschrieben. Sie benötigt weniger Ressourcen und ist sehr gut als Front-End-Antwortserver geeignet.
13. Apache hat Vorteile in der Verarbeitungsdynamik und bietet eine bessere Parallelität und eine geringere CPU-Speicherauslastung.

Quelle dieses Artikels: gesammelt und geordnet aus dem Internet


Das Obige stellt den Vergleich der Vor- und Nachteile von Apache und Nginx vor, einschließlich Aspekten des Inhalts. 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