Dieser Artikel stellt hauptsächlich den Unterschied zwischen Tomcat, Nginx und Apache HTTP Server Project vor. Jetzt kann ich ihn mit Ihnen teilen.
Apache Ein Projekt der Apache Software Foundation – Apache HTTP Server Project; Nginx ist ebenfalls eine Open-Source-HTTP-Serversoftware (natürlich kann es auch als Mail-Proxy-Server und allgemeiner TCP-Proxy-Server verwendet werden).
Der HTTP-Server ist im Wesentlichen eine Anwendung – er läuft normalerweise auf dem Server, bindet die IP-Adresse des Servers und lauscht auf einen bestimmten TCP-Port, um HTTP-Anfragen zu empfangen und zu verarbeiten, sodass der Client (im Allgemeinen IE, Firefox, Chrome) kann über das HTTP-Protokoll Webseiten (HTML-Format), Dokumente (PDF-Format), Audio (MP4-Format), Video (MOV-Format) und andere Ressourcen auf dem Server abrufen.
Die folgende Abbildung beschreibt diesen Prozess:
Nicht nur Apache HTTP Server und Nginx, sondern auch einfache HTTP-Server sind in Klassenbibliotheken implementiert, die in den meisten Programmiersprachen enthalten sind: HttpServer (Java HTTP Mit diesen Bibliotheken kann Python SimpleHTTPServer ganz einfach einen HTTP-Server betreiben. Sie können alle HTTP-Dienste bereitstellen, indem sie IP-Adressen binden und TCP-Ports abhören.
Apache Tomcat ist ein weiteres Projekt der Apache Foundation. Im Vergleich zu Apache HTTP Server kann Tomcat Ressourcen dynamisch generieren und an den Client zurückgeben. Sowohl Apache HTTP Server als auch Nginx können den Inhalt einer bestimmten Textdatei über das HTTP-Protokoll an den Client zurückgeben. Der Inhalt dieser Textdatei ist jedoch festgelegt. Das heißt, unabhängig davon, wann und wer darauf zugreift, ist der erhaltene Inhalt völlig ähnlich , wir nennen solche Ressourcen statische Ressourcen.
Dynamische Ressourcen sind unterschiedlich, wenn sie von verschiedenen Clients zu unterschiedlichen Zeiten aufgerufen werden. Zum Beispiel: eine Seite, die die aktuelle Uhrzeit anzeigt, und eine Seite, die die aktuelle IP-Adresse von Apache HTTP Server und Nginx selbst anzeigt unterstützen die Generierung dynamischer Seiten nicht, können aber durch andere Module unterstützt werden (z. B. durch Shell-, PHP- oder Python-Skripte zur dynamischen Generierung von Inhalten). Wenn Sie Java-Programme zur dynamischen Generierung von Ressourceninhalten verwenden möchten, ist dies mit einem solchen HTTP-Server nur schwer möglich. Die Java-Servlet-Technologie und die abgeleitete Java-Server-Pages-Technologie ermöglichen es Java-Programmen, auch HTTP-Anfragen zu verarbeiten und Inhalte zurückzugeben (dynamisch gesteuert durch das Programm). Tomcat ist der Container (Container), der die Ausführung von Servlet-/JSP-Anwendungen unterstützt:
Tomcat läuft auf JVM, bindet eine IP-Adresse und lauscht am TCP-Port. Es enthält auch die folgenden Vorwürfe:
Verwalten Sie den Lebenszyklus des Servlet-Programms
Ordnen Sie die URL dem angegebenen Servlet zur Verarbeitung zu
Arbeiten Sie mit dem Servlet-Programm um HTTP-Anfragen zu verarbeiten – – Generieren Sie ein HttpServletResponse-Objekt basierend auf der HTTP-Anfrage, übergeben Sie es zur Verarbeitung an das Servlet und geben Sie den vom HttpServletResponse-Objekt im Servlet generierten Inhalt an den Browser zurück
Obwohl Tomcat auch als HTTP-Server betrachtet werden kann, wird es normalerweise weiterhin mit Nginx verwendet: Trennung von dynamischen und statischen Ressourcen – Verwenden Sie die Reverse-Proxy-Funktion von Nginx, um Anforderungen zu verteilen: Alle dynamischen Ressourcenanforderungen werden an Tomcat übergeben, während statische Ressourcenanforderungen verwendet werden Anfragen (wie Bilder, Videos, CSS, JavaScript-Dateien usw.) werden von Nginx direkt an den Browser zurückgegeben, was den Druck auf Tomcat erheblich reduzieren kann. Wenn der Geschäftsdruck zunimmt, reicht eine Tomcat-Instanz möglicherweise nicht aus, um ihn horizontal zu erweitern, und die Lastausgleichsfunktion von Nginx kann Anforderungen über Algorithmen verarbeiten.
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für das Studium aller hilfreich ist. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.
Verwandte Empfehlungen:
nginx über den Unterschied zwischen Root und Alias
Unbegrenzte Klassifizierung und unendlich viele verschachtelte Kommentare in PHP
Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen Tomcat und Nginx, Apache HTTP Server Project. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!