Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Was sind die Merkmale und Unterschiede zwischen Nginx und Apache?

Was sind die Merkmale und Unterschiede zwischen Nginx und Apache?

王林
王林nach vorne
2023-05-13 20:10:141172Durchsuche

1. Nginx-Funktionen

1. Leicht, in C geschrieben, beansprucht derselbe Webdienst weniger Speicher und Ressourcen.

2. Anti-Parallelität, Nginx verwendet Epollandkqueue 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.

3. Wenn Nginx gestartet wird, generiert es einen Master-Prozess. Anschließend wird der Master-Prozess in mehrere Worker-Unterprozesse aufgeteilt.

4. Sie können den Upstream von Nginx so konfigurieren, dass er den Reverse-Proxy von Nginx implementiert.

5. Als Lastausgleichsserver unterstützt Nginx den Lastausgleich der Schicht 7.

6. Nginx verarbeitet statische Dateien gut und seine statische Verarbeitungsleistung ist mehr als dreimal höher als die von Apache.

7. Unterstützt viele gleichzeitige Verbindungen. Die maximale Anzahl gleichzeitiger Verbindungsanfragen pro Sekunde kann 50.000 erreichen.

8. Die reguläre Konfiguration macht viele Dinge einfach und Sie können nach dem Ändern der Konfiguration testen, ob es Probleme mit der Konfiguration gibt Beim Neustart ist die Konfiguration falsch, es kommt zum Absturz.

9. Verwenden Sie Threads, um Benutzeranfragen zu verarbeiten, und Threads teilen sich den Speicher. Sie müssen nur eine kleine Anzahl von Prozessen öffnen, und mehrere Threads können den Speicher des Prozesses gemeinsam nutzen, wodurch eine kleine Menge Speicher belegt wird.

10. Wenn ein Prozess abstürzt, wirkt sich dies auf die Nutzung durch mehrere Benutzer aus und führt zu schlechter Stabilität.

11. Das Design von Nginx ist hochmodular und das Schreiben von Modulen ist relativ einfach.

12. Nginx selbst ist ein Reverse-Proxy-Server und kann als sehr guter Mail-Proxy-Server verwendet werden.

13. Es ist sehr einfach zu starten und kann fast rund um die Uhr ohne Unterbrechung laufen. Auch wenn es mehrere Monate lang läuft, muss es nicht neu gestartet werden. Es kann auch die Softwareversion aktualisieren, ohne den Dienst zu unterbrechen.

14. Die Community ist aktiv und verschiedene Hochleistungsmodule werden schnell produziert.

2. Apache-Funktionen

1. Wählen Sie die Synchronisierungsblockierung.

2. Eine Verbindung entspricht einem Prozess.

3. Verwenden Sie einen Prozess, um Benutzeranfragen zu bearbeiten, verwenden Sie MPM (Multi-Processing-Modul), um eine Verbindung zum Netzwerkport herzustellen, akzeptieren Sie die Anfrage und planen Sie Unterprozesse zur Bearbeitung der Anfrage.

4. Wenn zu viele Benutzeranfragen vorliegen, werden mehr Prozesse geöffnet und eine große Menge an Speicher belegt. Die maximale Anzahl gleichzeitiger Verbindungsanfragen pro Sekunde wird 3.000 nicht überschreiten.

5. Wenn ein Prozess abstürzt, hat dies keine Auswirkungen auf andere Benutzer.

6. Wenn das Umschreiben häufig erfolgt, verwenden Sie Apache.

7. Mit der Entwicklung von Apache gibt es so viele Module, dass man im Grunde alles finden kann, was man sich vorstellen kann.

8. Apache ist ausgereifter und weist weniger Fehler auf, während Nginx relativ mehr Fehler aufweist.

9. Apache ist super stabil.

10. Die Unterstützung von Apache für PHP ist relativ einfach und Nginx muss mit anderen Backends verwendet werden.

11. Apache hat Vorteile bei der Verarbeitung dynamischer Anfragen. Im Allgemeinen müssen dynamische Anfragen von Apache ausgeführt werden, während Nginx für statische und umgekehrte Anfragen geeignet ist.

12. Apache ist immer noch der Mainstream mit umfangreichen Funktionen, ausgereifter Technologie und Entwicklungsgemeinschaft.

Der Hauptunterschied zwischen den beiden besteht darin, dass Apache ein synchrones Multiprozessmodell ist, eine Verbindung einem Prozess entspricht, während Nginx asynchron ist und mehrere Verbindungen (10.000 Ebenen) einem Prozess entsprechen können.

Im Allgemeinen verwenden Sie für Webdienste, die Leistung erfordern, Nginx.

Wenn Sie keine Leistung benötigen und nur Stabilität wünschen, sollten Sie in Betracht ziehen, dass die verschiedenen Funktionsmodule von Apache besser sind als Nginx. Das SSL-Modul ist beispielsweise besser als Nginx 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 statische Dienste nur für wenige Dateien bereitgestellt werden, ist das ausgewählte Modell von Apache möglicherweise leistungsfähiger als epoll .

Natürlich ist dies nur eine Annahme, die auf den Prinzipien des Netzwerk-IO-Modells basiert, und reale Anwendungen erfordern immer noch tatsächliche Tests.

Eine allgemeinere Lösung besteht darin, Front-End-Nginx-Anti-Parallelität und Back-End-Apache-Cluster zu verwenden, die besser zusammenarbeiten.

Das obige ist der detaillierte Inhalt vonWas sind die Merkmale und Unterschiede zwischen Nginx und Apache?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen