Heim > Artikel > Betrieb und Instandhaltung > Der Unterschied zwischen Nginx und Apache
Nginx
Leicht, in C geschrieben, derselbe Webdienst beansprucht weniger Speicher und Ressourcen
Anti-Parallelität Nginx verwendet Epoll und KQueue als Entwicklungsmodell, die Verarbeitung von Anforderungen erfolgt asynchron und nicht blockierend, und die Ladekapazität ist viel höher als bei Apache, während Apache blockiert. Bei hoher Parallelität kann Nginx einen geringen Ressourcenverbrauch und eine hohe Leistung aufrechterhalten, während Apache anfällig für einen Anstieg der Anzahl von Prozessen und Denial-of-Service ist, wenn die PHP-Verarbeitung langsam ist oder der Front-End-Druck hoch ist.
Nginx verarbeitet statische Dateien gut und die statische Verarbeitungsleistung ist mehr als dreimal höher als die von Apache.
Das Design von Nginx ist hochgradig modular und das Schreiben von Modulen ist relativ einfach.
Nginx Die Konfiguration ist einfach und die reguläre Konfiguration ermöglicht viele Dinge. Nach dem Ändern der Konfiguration können Sie mit -t testen, ob es Probleme mit der Konfiguration gibt. Wenn Sie feststellen, dass die Konfiguration falsch ist beim Neustart stürzt es ab
nginx ist ein Lastausgleichsserver und unterstützt 7 Ebenen des Lastausgleichs
nginx selbst ist ein Reverse-Proxy-Server und kann als sehr guter Mail-Proxy verwendet werden Server
Es ist besonders einfach zu starten und kann fast 7*24 ohne Unterbrechung laufen, selbst wenn es läuft. Es ist mehrere Monate lang kein Neustart erforderlich und die Softwareversion kann ohne Unterbrechung des Dienstes aktualisiert werden
Die Community ist aktiv und verschiedene Hochleistungsmodule werden schnell erstellt
Apache
Apache's Rewrite ist leistungsfähiger als Nginx, wenn das Rewrite häufig ist , benutze Apache
Apache hat sich bisher entwickelt, es gibt so viele Module, im Grunde kann man alles finden, was man sich vorstellen kann
Apache ist ausgereifter und hat weniger Fehler. Nginx hat relativ mehr Fehler
Apache ist super stabil
Apache hat eine relativ einfache Unterstützung für PHP, die in Verbindung mit anderen Backends verwendet werden muss
Apache Es hat Vorteile bei der Verarbeitung dynamischer Anfragen, aber Nginx ist in dieser Hinsicht nutzlos. Im Allgemeinen müssen dynamische Anforderungen von Apache ausgeführt werden, und Nginx eignet sich für statische und umgekehrte Anforderungen.
Apache ist immer noch der Mainstream mit umfangreichen Funktionen, ausgereifter Technologie und einer Entwicklungsgemeinschaft
Zusammenfassung
Der Hauptunterschied zwischen den beiden besteht darin, dass Apache ein Synchrones Multiprozessmodell. Eine Verbindung entspricht einem Prozess, während Nginx asynchron ist. Mehrere Verbindungen (10.000 Ebenen) können einem Prozess entsprechen.
Im Allgemeinen verwenden Sie Nginx für Webdienste, die Leistung erfordern. Wenn Sie keine Leistung benötigen und nur Stabilität wünschen, sollten Sie die verschiedenen Funktionsmodule von Apache in Betracht ziehen. Das SSL-Modul ist beispielsweise besser als das erstere und verfügt über mehr konfigurierbare Elemente. Das Netzwerk-E/A-Modell von epoll (kqueue auf freebsd) ist der Hauptgrund für die hohe Verarbeitungsleistung von nginx, aber epoll gewinnt nicht in allen Fällen. Wenn es selbst statische Dienste bereitstellt, gibt es nur wenige Dateien und das ausgewählte Modell von Apache 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.
Eine allgemeinere Lösung besteht darin, Nginx am Front-End zu verwenden, um Parallelität zu verhindern, und den Apache-Cluster am Back-End, was besser zusammenarbeitet.
Weitere technische Artikel zum Thema Nginx finden Sie in der Spalte Nginx-Tutorial, um mehr darüber zu erfahren!
Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen Nginx und Apache. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!