Der Unterschied zwischen Apache und Tomcat und warum sie zusammenarbeiten müssen.


Datum der Veröffentlichung:1. Januar 2021.



INFOMARTION > Der Unterschied zwischen Apache und Tomcat und warum sie zusammenarbeiten müssen.

Überblick.

Ich möchte die Unterschiede zwischen Apache und Tomcat beschreiben und erläutern, warum sie miteinander verknüpft werden müssen, worauf ich keine zufriedenstellende Antwort finden konnte, als ich neu war, selbst nachdem ich meine Vorgesetzten gefragt und im Internet recherchiert hatte. Manchmal wird gesagt, dass der Apache ein Webserver ist (statische Verarbeitung) und Tomcat ein Servlet-Container (dynamische Verarbeitung) (wie mir ein älterer Kollege sagte, als ich neu war), aber Tomcat hat bei genauer Betrachtung auch Webserver-Funktionen. Dann würden Sie denken, dass Tomcat alles ist, was Sie brauchen. Dies führt letztlich zu der Frage zurück, warum Apache und Tomcat miteinander verknüpft werden müssen. Für diejenigen, die das tun, möchte ich die Unterschiede zwischen Apache und Tomcat erklären und warum sie zusammenarbeiten müssen.

Inhaltsübersicht

  1. Gründe für die Verknüpfung von Apache und Tomcat
  2. Apache-Funktionen
  3. Tomcat-Merkmale
  4. Berücksichtigung
  5. Zusammenfassung

1. Gründe für die Verknüpfung von Apache und Tomcat

Die erste Schlussfolgerung, die sich daraus ergibt, ist die unterschiedliche Spezialisierung der Rollen. Apache ist auf Webserver-Funktionen spezialisiert, Tomcat auf die dynamische Verarbeitung mit Java.

Der Grund, warum ich schreibe, dass es einen Unterschied in der Spezialisierung gibt, ist, dass Tomcat selbst auch Funktionen als Webserver hat. Das mag ein wenig extrem sein, aber wenn es ein System gibt, in dem Apache und Tomcat miteinander verbunden sind, ist es nicht unmöglich, fast das gleiche System nur mit Apache und Tomcat zu realisieren.

1-1. Worin bestehen die Unterschiede im Fachwissen?

Bei der Betrachtung der Unterschiede in der Rollenspezialisierung sind wir der Meinung, dass dies schwer zu verstehen ist, weil der Vergleich plötzlich zwischen Apache und Tomcat gezogen wird. Es ist einfacher zu verstehen, wenn man sich Tomcat und DB-Server vorstellt. Das mag extrem klingen, aber es ist möglich, eine Anwendung nur mit Tomcat zu erstellen, ohne einen DB-Server einzurichten. So können Sie beispielsweise Benutzerinformationen in xml oder property verwalten und eine Anwendung erstellen, die die Anmeldung auf der Grundlage dieser Informationen authentifiziert. In der Realität jedoch, wenn man sich allgemeine Websysteme ansieht, verwalten die meisten Systeme Benutzerinformationen in einer DB und verweisen Daten von Tomcat an den DB-Server. Wenn Sie darüber nachdenken, warum, dann deshalb, weil Sie auf diese Weise Anwendungen effizienter entwickeln können.

Manchmal werden "Vor-" und "Nachteile" der Zusammenarbeit zwischen Apache und Tomcat erklärt, aber hier geht es nicht um Vor- und Nachteile. Auf die Frage nach den "Vor-" und "Nachteilen" der Verknüpfung von Tomcat- und DB-Servern würden sie antworten, dass die Rollen von vornherein unterschiedlich sind. Das Gleiche gilt für Apache und Tomcat, die von vornherein unterschiedliche Rollen haben.

1-2. Was ist Apache?

Nachdem ich erwähnt habe, dass die Rollen unterschiedlich sind, möchte ich nun erklären, was die Rollen von Apache und Tomcat sind.

Noch einmal: Apache ist offiziell als Apache HTTP Server bekannt. Apache ist ein Webserver, dessen Aufgabe kurz gesagt darin besteht, Anfragen zu analysieren.

Konkret handelt es sich dabei um.

  • Filter (Anfragen zulassen/verweigern) für bestimmte IP-Adressen
  • Umleitung für bestimmte URLs.
  • Ablehnung von bestimmten URLs
  • Verschlüsselung der Kommunikation durch SSL
  • Zuweisung von Prozessen an bestimmte Server auf Anfrage

Dies ist nur ein Beispiel, und es gibt noch weitere Funktionen, aber kurz gesagt besteht die Aufgabe des Apache (des Webservers) darin, die von den Benutzern empfangenen Anfragen zu bearbeiten.

Es ist die Aufgabe von Tomcat zu entscheiden, welche Art von Antwort er auf der Grundlage der spezifischen Anfrage geben soll. Der Punkt, der nicht missverstanden werden sollte, ist, dass der Apache die Erstellung von Antworten nicht verbietet. So wie Tomcat mit einem DB-Server arbeitet und einfache Daten (z.B. Nachrichtenlisten) auf der Tomcat-Seite verwaltet, hat der Apache kein Problem mit der Implementierung dynamischer Seiten, solange es sich um einfache Antworten handelt. Entscheidend ist, was am effizientesten gehandhabt und sauber verwaltet werden kann.

1-3. Was ist Tomcat?

Der offizielle Name für Tomcat lautet "Apache Tomcat". Tomcat ist ein Servlet-Container, aber um seine Rolle kurz zu erklären, ist er für die dynamische Verarbeitung von Anfragen zuständig.

Konkret handelt es sich dabei um.

  • Registrieren Sie Daten auf der Grundlage von Anforderungsinformationen.
  • Erstellen Sie dynamische Seiten und Antworten auf der Grundlage von Anforderungsinformationen.
  • Ermitteln Sie den Benutzer anhand der Anfragedaten und erstellen Sie für jeden Benutzer eine andere Antwort.

Grundsätzlich ist es die Aufgabe von Tomcat, Seiten, die keine festen Seiten sind, an den Benutzer zurückzugeben.

Dies ist ein weiterer Punkt, der nicht missverstanden werden sollte: Es bedeutet nicht, dass statische Seiten (z.B. html) nicht in Tomcat platziert werden sollten. Wenn die Design-Philosophie des Teams darin besteht, alle HTML-Dateien auf der Tomcat-Seite zu verwalten, ist es kein Problem, statische Seiten auf Tomcat zu platzieren. Auch in diesem Fall kommt es darauf an, was am effizientesten gehandhabt und sauber verwaltet werden kann.

2. Apache-Funktionen

Ich möchte Ihnen einige der Funktionen des Apache vorstellen. Der Apache bietet eine Reihe von Modulen (Dateien, in denen Prozesse verpackt sind). Laden Sie das Modul und beschreiben Sie die erforderlichen Konfigurationswerte, um seine Funktionen zu nutzen. Ich möchte beschreiben, welche Module verfügbar sind.

2-1. Fähigkeit zur gleichzeitigen Bearbeitung von Anfragen.

Das Modul "mpm_prefork_module" ist das entsprechende Modul. Es gibt auch "mpm_worker_module" und "mpm_event_module", obwohl die Funktionalität fast identisch ist.

Stellen Sie die Werte wie folgt ein.

<IfModule mpm_prefork_module>
    StartServers             5
    MinSpareServers          5
    MaxSpareServers         10
    MaxRequestWorkers      250
    MaxConnectionsPerChild   0
</IfModule>

Auf diese Weise können beim Start des Servers "5" Prozesse gestartet und "5" gleichzeitig parallel verarbeitet werden, und bis zu "250" können parallel verarbeitet werden, wenn eine große Anzahl von Anfragen eingeht.

2-2. Umschreiben der Anfrage-URL

Das Modul "rewrite_module" ist das entsprechende Modul.

Stellen Sie die Werte wie folgt ein.

<IfModule rewrite_module>
  RewriteEngine on
  RewriteCond %{HTTPS} off
  RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>

Wenn dies so angegeben wird, wird eine http-Anfrage an den Benutzer zurückgegeben, damit er erneut eine https-Anfrage stellt.

2-3. Zugangskontrolle nach IP-Adresse

Dieses Modul unterscheidet sich geringfügig von dem Modul, kontrolliert aber den Zugang nach IP-Adresse.

Die folgende Beschreibung verhindert den Zugriff von anderen IPs als "1.0.16.0/20", "1.0.64.0/18" und "1.1.64.0/18".

<Directory />
    order deny,allow
    deny from all
    allow from 1.0.16.0/20
    allow from 1.0.64.0/18
    allow from 1.1.64.0/18
</Directory>

3. Tomcat-Merkmale

Ich möchte die Funktionsweise von Tomcat erklären.

3-1. Fähigkeit zur dynamischen Rückgabe von Webseiten mit Java.

Die Kompetenz von Tomcat liegt in seiner "Fähigkeit, Webseiten dynamisch mit Java zurückzugeben". Im Allgemeinen erstellen Sie nicht die gesamte Java-Verarbeitung selbst, sondern verwenden sie in Verbindung mit Java-Bibliotheken (Module in Apache), die von verschiedenen Organisationen bereitgestellt werden.

  • Dynamische Generierung von Antworten auf der Grundlage der Parameter von Benutzeranfragen.
  • Ausgabe von Protokolldateien in einem bestimmten Format.
  • Excel-Dateien erstellen und bearbeiten
  • Stellen Sie fest, ob die Zip-Datei ein Passwort hat.

Komplexe Vorgänge wie die oben beschriebenen können einfach durch Einfügen einer Bibliothek und deren Aufruf erreicht werden. Die Aufgabe von Tomcat ist es, die Implementierung dieser komplexen Prozesse zu erleichtern.

4. Berücksichtigung

Wir haben erklärt, dass der Unterschied zwischen Apache und Tomcat in der "Rollenspezialisierung" besteht, aber sowohl Apache (Apache HTTP Server) als auch Tomcat (Apache Tomcat) wurden von der gleichen Apache Software Foundation entwickelt. Der Grund dafür könnte sein, dass der Apache in C und der Tomcat in Java geschrieben ist, was unterschiedliche Sprachen sind, aber der Grund, warum sie nicht zu einer einzigen zusammengefasst werden, könnte darin liegen, dass sie unterschiedliche Rollen spielen."

Die Homepage von Tomcat war recht umfangreich, und er funktioniert auch gut als Webserver.

http://tomcat.apache.org/

  • SSL/TLS (Verschlüsselung der Kommunikation)
  • SSI (die Fähigkeit, verschiedene HTML in HTML einzubetten)
  • Rewrite (Funktion zum Umschreiben von URLs)

Apache ist ein leistungsfähiger Webserver, aber es gibt viele Funktionen, die nicht genutzt werden, so dass die Apache Software Foundation dafür gesorgt hat, dass Tomcat auch ohne Apache laufen kann. Es ist jedoch immer noch besser, Apache einzubinden, wenn Sie eine detaillierte Kontrolle der Anfragen benötigen.

5. Zusammenfassung

Es werden die Unterschiede zwischen Apache und Tomcat beschrieben und warum sie zusammenarbeiten müssen.

Ich dachte, die Antwort auf diese Frage sei schwer zu verstehen, weil Tomcat ein vollwertiger Webserver ist. Es ist sinnvoll, über die Zusammenarbeit zwischen Apache und Tomcat nachzudenken, wobei zu bedenken ist, dass die Funktion von Tomcat als Webserver nicht seine Hauptfunktion ist (er ist nicht als Webserver spezialisiert).

Danke, dass Sie bis zum Ende zugesehen haben.