Forskellen mellem Apache og Tomcat, og hvorfor de skal arbejde sammen.
Udgivelsesdato:1. januar 2021.
INFOMARTION > Forskellen mellem Apache og Tomcat, og hvorfor de skal arbejde sammen.
Oversigt.
Jeg vil gerne beskrive forskellene mellem Apache og Tomcat, og hvorfor de skal kobles sammen, hvilket jeg ikke kunne finde et tilfredsstillende svar på, da jeg var nybegynder, selv efter at have spurgt mine seniorer og efterforsket på internettet. Det siges nogle gange, at Apache er en webserver (udfører statisk behandling) og Tomcat er en servletcontainer (udfører dynamisk behandling) (som jeg fik at vide af en erfaren kollega, da jeg var ny), men Tomcat har også webserverfunktioner, hvis man ser nøje efter. Så skulle man tro, at Tomcat er alt, hvad du har brug for. Dette fører i sidste ende tilbage til spørgsmålet om, hvorfor Apache og Tomcat skal være knyttet sammen. For dem, der gør det, vil jeg gerne forklare forskellene mellem Apache og Tomcat, og hvorfor de skal arbejde sammen.
Indholdsfortegnelse
1. Årsager til at sammenkoble Apache og Tomcat
Den første konklusion, der kan drages, er forskellen i specialiseringen af rollerne. Apache er specialiseret i webserverfunktioner, mens Tomcat er specialiseret i dynamisk behandling ved hjælp af Java.
Grunden til at skrive, at der er en forskel i specialiseringen er, at Tomcat selv også har funktioner som webserver. Det er måske lidt ekstremt, men hvis der findes et system, hvor Apache og Tomcat er forbundet, er det ikke umuligt at realisere næsten det samme system ved kun at bruge Apache og kun Tomcat.
1-1. Hvad er forskellene i ekspertise?
Når vi ser på forskellene i rollespecialisering, mener vi, at det er svært at forstå, fordi sammenligningen pludselig foretages mellem Apache og Tomcat. Det er lettere at forstå, hvis du tænker på Tomcat og DB-servere. Det lyder måske ekstremt, men det er muligt at oprette en applikation udelukkende med Tomcat uden at opsætte en DB-server. Du kan f.eks. administrere brugeroplysninger i xml eller ejendom og oprette et program, der autentificerer login på baggrund af disse oplysninger. Men i virkeligheden, hvis du ser på generelle websystemer, håndterer de fleste systemer brugeroplysninger i en DB og henviser data fra Tomcat til DB-serveren. Hvis du tænker over hvorfor, er det fordi du kan udvikle apps mere effektivt på den måde.
Nogle gange forklarer folk "fordele" og "ulemper" ved samarbejdet mellem Apache og Tomcat, men dette handler ikke om fordele og ulemper. Når jeg bliver spurgt om "fordele" og "ulemper" ved at sammenkoble Tomcat- og DB-servere, vil jeg svare, at rollerne er forskellige til at begynde med. Det samme gælder for Apache og Tomcat, som har forskellige roller til at begynde med.
1-2. Hvad er Apache?
Efter at have nævnt, at rollerne er forskellige, vil jeg nu gerne forklare, hvilke roller Apache og Tomcat har.
Endnu en gang er Apache officielt kendt som Apache HTTP Server. Apache er en webserver, men kort fortalt er dens rolle at analysere anmodninger.
Det drejer sig specifikt om følgende.
- Filtrere (tillade/afvise anmodninger) for specifikke IP-adresser
- Omdiriger til bestemte URL'er.
- Afvisning af bestemte URL'er
- Kryptering af kommunikation med SSL
- Tildeling af processer til bestemte servere efter anmodning
Ovenstående er blot et eksempel, og der er flere funktioner, men kort sagt er Apaches (webserveren) rolle at håndtere anmodninger fra brugere.
Det er Tomcat's opgave at beslutte, hvilken slags svar der skal gives på baggrund af den specifikke anmodning. Det skal ikke misforstås, at Apache ikke forbyder oprettelsen af svar. Ligesom Tomcat arbejder med en DB-server og vedligeholder simple data (f.eks. meddelelseslister) på Tomcat-siden, har Apache ingen problemer med at implementere dynamiske sider, så længe de er simple svar. Det afgørende er, hvad der kan håndteres mest effektivt og forvaltes pænt.
1-3. Hvad er Tomcat?
Det officielle navn for Tomcat er "Apache Tomcat". Tomcat er en servletcontainer, men for at forklare dens rolle i en nøddeskal er den ansvarlig for dynamisk behandling baseret på anmodninger.
Det drejer sig specifikt om følgende.
- Registrer data baseret på anmodningsoplysninger.
- Opret dynamiske sider og svar baseret på anmodningsoplysninger.
- Bestem brugeren ud fra anmodningsoplysningerne, og opret et andet svar for hver bruger.
Grundlæggende er det Tomcat's opgave at returnere sider, der ikke er faste sider, til brugeren.
Dette er et andet punkt, som ikke bør misforstås: det betyder ikke, at statiske sider (f.eks. html) ikke bør placeres i Tomcat. Hvis teamets designfilosofi er at administrere al html på Tomcat-siden, er der ikke noget problem med at placere statiske sider på Tomcat. Også i dette tilfælde er det afgørende, hvad der kan håndteres mest effektivt og forvaltes pænt.
2. Apache-funktioner
Jeg vil gerne præsentere nogle af Apache's funktioner. Apache indeholder en række moduler (filer, som processer pakkes i). Indlæs modulet, og beskriv de konfigurationsværdier, der kræves for at bruge dets funktioner. Jeg vil gerne beskrive, hvilke moduler der er til rådighed.
2-1. Mulighed for at behandle anmodninger samtidig.
Modulet "mpm_prefork_module" er det relevante modul. Der findes også "mpm_worker_module" og "mpm_event_module", selv om funktionaliteten er næsten identisk.
Indstil værdierne som følger.
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 250
MaxConnectionsPerChild 0
</IfModule>
Når serveren startes på denne måde, kan der startes "5" processer, og "5" kan behandles parallelt på samme tid, og op til "250" kan behandles parallelt, når der kommer et stort antal anmodninger.
2-2. Omskrivning af forespørgsels-URL'en
Modulet "rewrite_module" er det relevante modul.
Indstil værdierne som følger.
<IfModule rewrite_module>
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
Hvis dette er angivet på denne måde, vil en anmodning, der kommer ind via http, blive returneret til brugeren, så han/hun kan anmode igen via https.
2-3. Adgangskontrol via IP-adresse
Denne er lidt anderledes end modulet, men den styrer adgangen efter IP-adresse.
Følgende beskrivelse vil forhindre adgang fra andre IP'er end "1.0.16.0/20", "1.0.64.0/18" og "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
Jeg vil gerne forklare Tomcat's funktionalitet.
3-1. Mulighed for at returnere websider dynamisk ved hjælp af Java.
Tomcat's ekspertise ligger i dets "evne til at returnere websider dynamisk ved hjælp af Java". Generelt skaber du ikke al Java-behandling selv, men bruger den i forbindelse med Java-biblioteker (moduler i Apache), som er lavet af forskellige organisationer.
- Dynamisk generering af svar baseret på brugerens anmodningsparametre.
- Output logfiler i et bestemt format.
- Opret og rediger Excel-filer
- Bestem, om zip-filen har en adgangskode.
Komplekse processer som ovenstående kan opnås ved blot at indsætte et bibliotek og kalde biblioteket. Tomcat har til opgave at gøre det nemt at implementere disse komplekse processer.
4. overvejelse
Vi har forklaret, at forskellen mellem Apache og Tomcat er "rollespecialisering", men både Apache (Apache HTTP Server) og Tomcat (Apache Tomcat) er skabt af den samme Apache Software Foundation. Årsagen kan være, at Apache er skrevet i C og Tomcat i Java, som er forskellige sprog, men grunden til, at de ikke er kombineret til ét, kan være, at de spiller forskellige roller."
Tomcat's hjemmeside var ret omfattende, og den fungerer også godt som webserver.
- SSL/TLS (kryptering af kommunikation)
- SSI (muligheden for at indlejre forskellig HTML i HTML)
- Rewrite (URL-omskrivningsfunktion)
Apache er en højtydende webserver, men der er mange funktioner, som ikke bruges, så Apache Software Foundation kan have gjort det sådan, at Tomcat kan køre uafhængigt uden Apache. Det er dog stadig bedre at inkludere Apache, hvis du har brug for detaljeret kontrol af anmodninger.
5. resumé
Forskellene mellem Apache og Tomcat, og hvorfor de skal arbejde sammen, er beskrevet.
Jeg troede, at svaret på dette spørgsmål var svært at forstå, fordi Tomcat er en webserver med alle funktioner. Det er godt at tænke på samarbejdet mellem Apache og Tomcat, idet man skal huske på, at Tomcats funktion som webserver ikke er dens hovedfunktion (den er ikke specialiseret som webserver).
Tak, fordi du kiggede med til slutningen.