Skillnaden mellan Apache och Tomcat och varför de måste arbeta tillsammans.


Datum för offentliggörande:1 januari 2021.



INFOMARTION > Skillnaden mellan Apache och Tomcat och varför de måste arbeta tillsammans.

Översikt.

Jag skulle vilja beskriva skillnaderna mellan Apache och Tomcat och varför de måste kopplas samman, vilket jag inte kunde hitta något tillfredsställande svar på när jag var nybörjare, inte ens efter att ha frågat mina seniorer och efter att ha forskat på Internet. Det sägs ibland att Apache är en webbserver (utför statisk bearbetning) och Tomcat är en servletbehållare (utför dynamisk bearbetning) (vilket jag fick höra av en äldre kollega när jag var nyanställd), men Tomcat har också webbserverfunktioner om man tittar noga. Då skulle du tro att Tomcat är allt du behöver. Detta leder så småningom tillbaka till frågan varför Apache och Tomcat måste kopplas ihop. För dem som gör det vill jag förklara skillnaderna mellan Apache och Tomcat och varför de måste arbeta tillsammans.

Innehållsförteckning

  1. Anledningar till att koppla ihop Apache och Tomcat
  2. Funktioner i Apache
  3. Tomcat-funktioner
  4. beaktande
  5. sammanfattning

1. Anledningar till att koppla ihop Apache och Tomcat

Den första slutsatsen som kan dras är skillnaden i rollernas specialisering. Apache är specialiserad på webbserverfunktioner, medan Tomcat är specialiserad på dynamisk bearbetning med hjälp av Java.

Anledningen till att vi skriver att det finns en skillnad i specialisering är att Tomcat också har funktioner som webbserver. Detta är kanske lite extremt, men om det finns ett system där Apache och Tomcat är sammankopplade är det inte omöjligt att skapa nästan samma system med enbart Apache och enbart Tomcat.

1-1. Vilka är skillnaderna i sakkunskap?

När det gäller skillnaderna i rollspecialisering anser vi att detta är svårt att förstå eftersom jämförelsen plötsligt görs mellan Apache och Tomcat. Det är lättare att förstå om du tänker i termer av Tomcat och DB-servrar. Det låter kanske extremt, men det är möjligt att skapa ett program med Tomcat utan att installera en DB-server. Du kan till exempel hantera användarinformation i xml eller property och skapa ett program som autentiserar inloggning baserat på denna information. I verkligheten, om du tittar på allmänna webbsystem, hanterar de flesta system användarinformation i en databas och hänvisar data från Tomcat till databasservern. Om du funderar på varför är det för att du kan utveckla appar mer effektivt på det sättet.

Ibland förklarar folk "fördelar" och "nackdelar" med samarbetet mellan Apache och Tomcat, men det här handlar inte om fördelar och nackdelar. På frågan om "fördelar" och "nackdelar" med att koppla ihop Tomcat- och DB-servrar svarar de att rollerna är olika till att börja med. Samma sak gäller för Apache och Tomcat, som har olika roller från början.

1-2. Vad är Apache?

Efter att ha nämnt att rollerna är olika vill jag nu förklara vilka roller Apache och Tomcat har.

Återigen är Apache officiellt känd som Apache HTTP Server. Apache är en webbserver, men i korthet är dess roll att analysera förfrågningar.

Dessa är särskilt följande.

  • Filtrera (tillåta/avvisa förfrågningar) för specifika IP-adresser
  • Omdirigering för specifika webbadresser.
  • Avvisning av specifika webbadresser
  • Kryptering av kommunikation med SSL
  • Tilldelning av processer till specifika servrar på begäran

Ovanstående är bara ett exempel och det finns fler funktioner, men i korthet är Apaches (webbserverns) roll att hantera förfrågningar från användare.

Det är Tomcats uppgift att bestämma vilken typ av svar som ska ges baserat på den specifika begäran. Det som inte får missförstås är att Apache inte förbjuder skapandet av svar. Precis som Tomcat arbetar med en DB-server och upprätthåller enkla data (t.ex. meddelandelistor) på Tomcat-sidan, har Apache inga problem med att implementera dynamiska sidor så länge de är enkla svar. Nyckeln är vad som kan hanteras mest effektivt och snyggt.

1-3. Vad är Tomcat?

Det officiella namnet på Tomcat är "Apache Tomcat". Tomcat är en servletbehållare, men för att förklara dess roll i ett nötskal ansvarar den för dynamisk bearbetning av begäranden.

Dessa är särskilt följande.

  • Registrera data baserat på information om begäran.
  • Skapa dynamiska sidor och svar baserat på förfrågningsinformation.
  • Bestäm användaren utifrån förfrågningsinformationen och skapa ett annat svar för varje användare.

I princip är det Tomcats uppgift att returnera sidor som inte är fasta sidor till användaren.

Detta är en annan punkt som inte får missförstås: det betyder inte att statiska sidor (t.ex. html) inte bör placeras i Tomcat. Om teamets designfilosofi är att hantera all html på Tomcat-sidan är det inget problem att placera statiska sidor på Tomcat. Också i det här fallet handlar det om vad som kan hanteras mest effektivt och snyggt.

2. Funktioner i Apache

Jag skulle vilja presentera några av Apaches funktioner. Apache tillhandahåller ett antal moduler (filer i vilka processer paketeras). Ladda modulen och beskriv de konfigurationsvärden som krävs för att använda dess funktioner. Jag skulle vilja beskriva vilka moduler som finns tillgängliga.

2-1. Förmåga att behandla förfrågningar samtidigt.

Modulen "mpm_prefork_module" är den relevanta modulen. Det finns också "mpm_worker_module" och "mpm_event_module", även om funktionaliteten är nästan identisk.

Ställ in värdena på följande sätt.

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

När servern startas kan "5" processer startas och "5" processer kan behandlas parallellt samtidigt, och upp till "250" processer kan behandlas parallellt när ett stort antal förfrågningar kommer in.

2-2. Skriv om URL:n för begäran

Modulen "rewrite_module" är den relevanta modulen.

Ställ in värdena på följande sätt.

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

Om detta anges på detta sätt kommer en begäran som kommer in via http att returneras till användaren så att denne kan begära en ny begäran via https.

2-3. Åtkomstkontroll med hjälp av IP-adress

Den här är något annorlunda än modulen, men den kontrollerar åtkomsten via IP-adress.

Följande beskrivning förhindrar åtkomst från andra IP-adresser än "1.0.16.0/20", "1.0.64.0/18" och "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-funktioner

Jag skulle vilja förklara Tomcats funktionalitet.

3-1. Möjlighet att returnera webbsidor dynamiskt med hjälp av Java.

Tomcats expertis ligger i dess "förmåga att returnera webbsidor dynamiskt med hjälp av Java". I allmänhet skapar du inte all Java-bearbetning själv, utan använder den tillsammans med Java-bibliotek (moduler i Apache) som tillverkas av olika organisationer.

  • Dynamiskt generera svar baserat på användarens förfrågningsparametrar.
  • Utdata loggfiler i ett visst format.
  • Skapa och redigera Excel-filer
  • Bestäm om zip-filen har ett lösenord.

Komplexa processer som de som beskrivs ovan kan uppnås helt enkelt genom att infoga ett bibliotek och anropa biblioteket. Tomcats roll är att göra det enkelt att genomföra dessa komplexa processer.

4. beaktande

Vi har förklarat att skillnaden mellan Apache och Tomcat är "rollspecialisering", men både Apache (Apache HTTP Server) och Tomcat (Apache Tomcat) har skapats av samma Apache Software Foundation. Anledningen kan vara att Apache är skriven i C och Tomcat i Java, vilket är olika språk, men anledningen till att de inte kombineras till ett kan vara att de spelar olika roller."

Tomcats hemsida var ganska omfattande, och den fungerar också bra som webbserver.

http://tomcat.apache.org/

  • SSL/TLS (kryptering av kommunikation)
  • SSI (möjligheten att bädda in olika HTML-filer i HTML)
  • Rewrite (funktion för omskrivning av webbadresser)

Apache är en högpresterande webbserver, men det finns många funktioner som inte används, så Apache Software Foundation kan ha gjort så att Tomcat kan köras självständigt utan Apache. Det är dock fortfarande bättre att inkludera Apache om du behöver detaljerad kontroll över begäranden.

5. sammanfattning

Skillnaderna mellan Apache och Tomcat och varför de måste arbeta tillsammans beskrivs.

Jag trodde att svaret på den här frågan var svårt att förstå eftersom Tomcat är en fullfjädrad webbserver. Det är bra att tänka på samarbetet mellan Apache och Tomcat, med tanke på att Tomcats funktion som webbserver inte är dess huvudfunktion (den är inte specialiserad som webbserver).

Tack för att du tittade på till slutet.




■INFORMATION

Klicka här för att komma till den översta sidan med information.


■PROFILE

Klicka här för en profil.


■Kontaktuppgifter.

För frågor om artikeln, vänligen kontakta oss här.