Het verschil tussen Apache en Tomcat en waarom ze moeten samenwerken.


Datum van publicatie:1 januari 2021.



INFOMARTION > Het verschil tussen Apache en Tomcat en waarom ze moeten samenwerken.

Overzicht.

Ik wil graag de verschillen beschrijven tussen Apache en Tomcat en waarom ze gekoppeld moeten worden, waar ik geen bevredigend antwoord op kon vinden toen ik nieuw was, zelfs niet na vragen aan mijn senioren en onderzoek op het internet. Er wordt soms gezegd dat Apache een webserver is (voert statische verwerking uit) en Tomcat een servletcontainer (voert dynamische verwerking uit) (zoals mij werd verteld door een senior collega toen ik nieuw was), maar Tomcat heeft ook webserverfuncties als je goed kijkt. Dan zou je denken dat Tomcat alles is wat je nodig hebt. Dit leidt uiteindelijk weer tot de vraag waarom Apache en Tomcat aan elkaar gekoppeld moeten worden. Voor degenen die dat wel doen, wil ik graag de verschillen tussen Apache en Tomcat uitleggen en waarom ze samen moeten werken.

Inhoudsopgave

  1. Redenen om Apache en Tomcat te koppelen
  2. Apache Kenmerken
  3. Tomcat kenmerken
  4. overweging
  5. samenvatting

1. Redenen om Apache en Tomcat te koppelen

De eerste conclusie die moet worden getrokken is het verschil in specialisatie van de rollen. Apache is gespecialiseerd in webserverfuncties, terwijl Tomcat gespecialiseerd is in dynamische verwerking met behulp van Java.

De reden om te schrijven dat er een verschil in specialisatie is, is dat Tomcat zelf ook functies als webserver heeft. Dit is misschien een beetje extreem, maar als er een systeem is waarin Apache en Tomcat gekoppeld zijn, is het niet onmogelijk om bijna hetzelfde systeem te realiseren met alleen Apache en alleen Tomcat.

1-1. Wat zijn de verschillen in expertise?

De verschillen in rolspecialisatie zijn volgens ons moeilijk te begrijpen omdat de vergelijking plotseling wordt gemaakt tussen Apache en Tomcat. Het is gemakkelijker te begrijpen als je denkt in termen van Tomcat en DB servers. Dit klinkt misschien extreem, maar het is mogelijk om een applicatie te maken met alleen Tomcat zonder een DB server op te zetten. U zou bijvoorbeeld gebruikersinformatie kunnen beheren in xml of property en een toepassing kunnen maken die login authentiseert op basis van die informatie. In werkelijkheid echter, als je kijkt naar algemene websystemen, beheren de meeste systemen gebruikersinformatie in een DB en verwijzen gegevens van Tomcat naar de DB-server. Als je erover nadenkt waarom, is het omdat je op die manier efficiënter apps kunt ontwikkelen.

Soms leggen mensen "voordelen" en "nadelen" uit met betrekking tot de samenwerking tussen Apache en Tomcat, maar dit gaat niet over voordelen en nadelen. Op de vraag naar de "voor-" en "nadelen" van het koppelen van Tomcat en DB-servers, zouden zij antwoorden dat de rollen om te beginnen verschillend zijn. Hetzelfde geldt voor Apache en Tomcat, die om te beginnen verschillende rollen hebben.

1-2. Wat is Apache?

Nu ik heb gezegd dat de rollen verschillend zijn, wil ik graag uitleggen wat de rollen van Apache en Tomcat zijn.

Nogmaals, Apache heet officieel Apache HTTP Server. Apache is een webserver, maar in een notendop bestaat zijn rol erin verzoeken te analyseren.

Specifiek, zijn deze.

  • Filteren (toestaan/weigeren van verzoeken) voor specifieke IP-adressen
  • Doorverwijzing voor specifieke URL's.
  • Afwijzing van specifieke URL's
  • Versleuteling van de communicatie door SSL
  • Toewijzing van processen aan specifieke servers op verzoek

Het bovenstaande is slechts één voorbeeld, en er zijn meer functies, maar in het kort komt het erop neer dat de rol van Apache (de webserver) erin bestaat verzoeken van gebruikers af te handelen.

Het is de taak van Tomcat om te beslissen wat voor antwoord hij geeft op basis van het specifieke verzoek. Het punt dat niet verkeerd moet worden begrepen is dat Apache het maken van reacties niet verbiedt. Net zoals Tomcat met een DB-server werkt en eenvoudige gegevens (b.v. berichtenlijsten) aan de Tomcat-kant onderhoudt, heeft Apache geen probleem met het implementeren van dynamische pagina's, zolang het maar eenvoudige antwoorden zijn. Het gaat erom wat het meest efficiënt kan worden afgehandeld en netjes kan worden beheerd.

1-3. Wat is Tomcat?

De officiële naam voor Tomcat is "Apache Tomcat". Tomcat is een servlet container, maar om zijn rol in een notendop uit te leggen, het is verantwoordelijk voor dynamische verwerking op basis van verzoeken.

Specifiek, zijn deze.

  • Registreer gegevens op basis van verzoekinformatie.
  • Creëer dynamische pagina's en antwoorden op basis van verzoekinformatie.
  • Bepaal de gebruiker op basis van de verzoekinformatie en maak voor elke gebruiker een ander antwoord.

In principe is het Tomcat's taak om pagina's die geen vaste pagina's zijn aan de gebruiker terug te sturen.

Dit is een ander punt dat niet verkeerd moet worden begrepen: het betekent niet dat statische pagina's (b.v. html) niet in Tomcat mogen worden geplaatst. Als de ontwerpfilosofie van het team is om alle html aan de Tomcat-kant te beheren, is er geen probleem met het plaatsen van statische pagina's op Tomcat. Ook in dit geval gaat het erom wat het meest efficiënt kan worden afgehandeld en netjes kan worden beheerd.

2. Apache Kenmerken

Ik zou graag een paar van de kenmerken van Apache willen voorstellen. Apache biedt een aantal modules (bestanden waarin processen worden verpakt). Laad de module en beschrijf de vereiste configuratiewaarden om de functies te gebruiken. Ik wil graag beschrijven welke modules beschikbaar zijn.

2-1. Mogelijkheid om verzoeken gelijktijdig te verwerken.

De module "mpm_prefork_module" is de relevante module. Er zijn ook "mpm_worker_module" en "mpm_event_module", hoewel de functionaliteit bijna identiek is.

Stel de waarden als volgt in.

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

Wanneer de server op deze manier wordt beschreven, kunnen bij het opstarten van de server "5" processen worden gestart en "5" tegelijkertijd parallel worden verwerkt, en kunnen er tot "250" parallel worden verwerkt wanneer een groot aantal verzoeken binnenkomt.

2-2. Herschrijven van de URL van het verzoek

De module "rewrite_module" is de relevante module.

Stel de waarden als volgt in.

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

Als dit zo wordt gesteld, zal een verzoek dat via http binnenkomt, worden teruggestuurd naar de gebruiker om het opnieuw via https aan te vragen.

2-3. Toegangscontrole per IP-adres

Deze is iets anders dan de module, maar controleert de toegang per IP adres.

De volgende beschrijving zal toegang verhinderen van andere IP's dan "1.0.16.0/20", "1.0.64.0/18" en "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 kenmerken

Ik wil graag de functionaliteit van Tomcat uitleggen.

3-1. Mogelijkheid om webpagina's dynamisch terug te sturen met behulp van Java.

De expertise van Tomcat ligt in zijn "vermogen om webpagina's dynamisch terug te geven met behulp van Java". In het algemeen maak je niet alle Java-processing zelf, maar gebruik je het in combinatie met Java-bibliotheken (modules in Apache) die door verschillende organisaties worden gemaakt.

  • Dynamisch genereren van antwoorden op basis van verzoekparameters van de gebruiker.
  • Uitvoer logbestanden in een specifiek formaat.
  • Excel-bestanden maken en bewerken
  • Bepaal of het zip-bestand een wachtwoord heeft.

Complexe processen, zoals hierboven beschreven, kunnen eenvoudig worden gerealiseerd door een bibliotheek in te voegen en de bibliotheek aan te roepen. De rol van Tomcat is het gemakkelijk maken om deze complexe processen te implementeren.

4. overweging

We hebben uitgelegd dat het verschil tussen Apache en Tomcat "rolspecialisatie" is, maar zowel Apache (Apache HTTP Server) als Tomcat (Apache Tomcat) zijn door dezelfde Apache Software Foundation gemaakt. De reden hiervoor kan zijn dat Apache in C is geschreven en Tomcat in Java, wat verschillende talen zijn, maar de reden waarom zij niet tot één taal zijn gecombineerd kan zijn dat zij verschillende rollen spelen."

De homepage van Tomcat was vrij uitgebreid, en hij functioneert ook goed als webserver.

http://tomcat.apache.org/

  • SSL/TLS (encryptie van communicatie)
  • SSI (de mogelijkheid om verschillende HTML binnen HTML te embedden)
  • Rewrite (URL herschrijvende functie)

Apache is een krachtige webserver, maar er zijn veel functies die niet worden gebruikt, zodat de Apache Software Foundation het zo kan hebben gemaakt dat Tomcat onafhankelijk kan draaien zonder Apache. Het is echter nog steeds beter om Apache op te nemen als u gedetailleerde request controle nodig heeft.

5. samenvatting

De verschillen tussen Apache en Tomcat en waarom ze moeten samenwerken worden beschreven.

Ik dacht dat het antwoord op deze vraag moeilijk te begrijpen was omdat Tomcat een volwaardige webserver is. Het is goed om na te denken over de samenwerking tussen Apache en Tomcat, met in het achterhoofd dat de functie van Tomcat als webserver niet zijn hoofdfunctie is (hij is niet gespecialiseerd als webserver).

Bedankt voor het kijken tot het einde.