Razlika med Apacheom in Tomcatom ter zakaj morata delovati skupaj.
Datum objave:1. januar 2021.
INFOMARTION > Razlika med Apacheom in Tomcatom ter zakaj morata delovati skupaj.
Pregled.
Rad bi opisal razlike med Apachejem in Tomcatom ter zakaj ju je treba povezati, na kar nisem našel zadovoljivega odgovora, ko sem bil novinec, tudi ko sem spraševal starejše in raziskoval na internetu. Včasih pravijo, da je Apache spletni strežnik (izvaja statično obdelavo), Tomcat pa vsebnik za servlete (izvaja dinamično obdelavo) (kot mi je rekel starejši kolega, ko sem bil novinec), vendar ima Tomcat tudi funkcije spletnega strežnika, če ga natančno preučimo. Potem bi si mislili, da je Tomcat vse, kar potrebujete. Na koncu se vrnemo k vprašanju, zakaj morata biti Apache in Tomcat povezana. Tistim, ki to počnejo, bi rad pojasnil razlike med Apacheom in Tomcatom ter zakaj morata delovati skupaj.
Kazalo vsebine
1. Zakaj povezati Apache in Tomcat?
Prva ugotovitev, ki jo je treba narediti, je razlika v specializaciji vlog. Apache je specializiran za funkcije spletnega strežnika, medtem ko je Tomcat specializiran za dinamično obdelavo z uporabo Jave.
Razlog za pisanje, da obstaja razlika v specializaciji, je, da ima Tomcat tudi funkcije spletnega strežnika. To je morda nekoliko skrajno, vendar če obstaja sistem, v katerem sta Apache in Tomcat povezana, ni nemogoče uresničiti skoraj enakega sistema z uporabo samo Apacheja in samo Tomcata.
1-1. Kakšne so razlike v strokovnem znanju?
Menimo, da je razlike v specializaciji vlog težko razumeti, ker se nenadoma primerjata Apache in Tomcat. Lažje ga boste razumeli, če boste razmišljali o strežnikih Tomcat in DB. To se morda sliši skrajno, vendar je mogoče ustvariti aplikacijo samo z uporabo Tomcata brez vzpostavitve strežnika DB. Informacije o uporabniku lahko na primer upravljate v xml ali lastnini in ustvarite aplikacijo, ki na podlagi teh informacij preverja pristnost prijave. Če pogledate splošne spletne sisteme, pa v resnici večina sistemov upravlja informacije o uporabnikih v DB in podatke iz strežnika Tomcat preusmerja v strežnik DB. Če pomislite, zakaj, je to zato, ker lahko na ta način učinkoviteje razvijate aplikacije.
Včasih ljudje pojasnjujejo "prednosti" in "slabosti" sodelovanja med Apacheom in Tomcatom, vendar tu ne gre za prednosti in slabosti. Na vprašanje o prednostih in slabostih povezovanja strežnikov Tomcat in DB so odgovorili, da sta vlogi že na začetku različni. Enako velja za Apache in Tomcat, ki imata na začetku različne vloge.
1-2. Kaj je Apache?
Ker sem omenil, da se vlogi razlikujeta, bi zdaj rad razložil, kakšni sta vlogi Apacheja in Tomcata.
Še enkrat, Apache je uradno znan kot Apache HTTP Server. Apache je spletni strežnik, njegova vloga pa je analiziranje zahtevkov.
To so zlasti.
- Filtriranje (dovoljevanje/odklanjanje zahtevkov) za določene naslove IP
- Preusmeritev za določene naslove URL.
- Zavrnitev določenih naslovov URL
- Šifriranje komunikacij s protokolom SSL
- Dodelitev procesov določenim strežnikom na zahtevo
Zgoraj je le en primer, funkcij je še več, na kratko pa je vloga Apacheja (spletnega strežnika) ta, da obravnava zahteve, prejete od uporabnikov.
Naloga sistema Tomcat je, da se na podlagi določene zahteve odloči, kakšen odziv bo pripravil. Ne smemo napačno razumeti, da Apache ne prepoveduje ustvarjanja odzivov. Tako kot Tomcat sodeluje s strežnikom DB in vzdržuje preproste podatke (npr. sezname sporočil) na strani Tomcata, tudi Apache nima težav z izvajanjem dinamičnih strani, če so to preprosti odgovori. Ključno je, kaj je mogoče urediti najučinkoviteje in elegantno.
1-3. Kaj je Tomcat?
Uradno ime za Tomcat je "Apache Tomcat". Tomcat je vsebnik za servlete, a če na kratko pojasnimo njegovo vlogo, je odgovoren za dinamično obdelavo na podlagi zahtevkov.
To so zlasti.
- Registrirajte podatke na podlagi podatkov iz zahtevka.
- Ustvarjanje dinamičnih strani in odzivov na podlagi informacij o zahtevi.
- Določite uporabnika na podlagi informacij o zahtevi in za vsakega uporabnika ustvarite drugačen odziv.
Načeloma je naloga sistema Tomcat, da uporabniku vrne strani, ki niso fiksne strani.
To je še ena točka, ki je ne smemo napačno razumeti: ne pomeni, da statičnih strani (npr. html) ne smete namestiti v Tomcat. Če je filozofija zasnove ekipe, da vse html ureja na strani Tomcat, ni težav z nameščanjem statičnih strani v Tomcat. Tudi v tem primeru je ključno, kaj je mogoče najučinkoviteje obdelati in urediti.
2. Funkcije Apache
Želel bi predstaviti nekaj funkcij programa Apache. Apache ponuja številne module (datoteke, v katere so zapakirani procesi). Naložite modul in opišite zahtevane konfiguracijske vrednosti za uporabo njegovih funkcij. Rad bi opisal, kateri moduli so na voljo.
2-1. Sposobnost hkratne obdelave zahtevkov.
Modul "mpm_prefork_module" je ustrezen modul. Obstajata tudi modula "mpm_worker_module" in "mpm_event_module", čeprav je njuna funkcionalnost skoraj enaka.
Nastavite naslednje vrednosti.
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 250
MaxConnectionsPerChild 0
</IfModule>
Če je opisano na ta način, se lahko ob zagonu strežnika hkrati zažene "5" procesov in "5" se lahko obdeluje vzporedno, ob velikem številu zahtevkov pa se lahko vzporedno obdeluje do "250".
2-2. Prepisovanje URL-ja zahteve
Modul 'rewrite_module' je ustrezen modul.
Nastavite naslednje vrednosti.
<IfModule rewrite_module>
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
Če je to navedeno na ta način, bo v primeru, da je zahteva poslana prek protokola http, vrnjena uporabniku, da jo ponovno zahteva prek protokola https.
2-3. Nadzor dostopa po naslovu IP
Ta modul se nekoliko razlikuje od modula, vendar nadzoruje dostop po naslovu IP.
Naslednji opis bo preprečil dostop iz naslovov IP, ki niso "1.0.16.0/20", "1.0.64.0/18" in "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. Značilnosti sistema Tomcat
Rad bi pojasnil funkcionalnost sistema Tomcat.
3-1. zmožnost dinamičnega vračanja spletnih strani z uporabo Jave.
Tomcatovo strokovno znanje je v njegovi "zmožnosti dinamičnega vračanja spletnih strani z uporabo Jave". Običajno vse obdelave v jeziku Java ne ustvarjate sami, temveč jo uporabljate v povezavi s knjižnicami Java (moduli v programu Apache), ki jih pripravljajo različne organizacije.
- Dinamično ustvarjanje odzivov na podlagi parametrov uporabniške zahteve.
- Izpisovanje dnevniških datotek v določeni obliki.
- Ustvarjanje in urejanje datotek Excel
- Določite, ali ima datoteka zip geslo.
Kompleksne procese, kot so opisani zgoraj, lahko dosežete preprosto tako, da vstavite knjižnico in jo pokličete. Tomcatova vloga je olajšati izvajanje teh zapletenih postopkov.
4. upoštevanje
Pojasnili smo, da je razlika med Apachejem in Tomcatom "specializacija vlog", vendar sta tako Apache (Apache HTTP Server) kot Tomcat (Apache Tomcat) ustvarjena v okviru iste fundacije Apache Software Foundation. Razlog je morda v tem, da je Apache napisan v jeziku C, Tomcat pa v Javi, kar sta različna jezika, razlog, zakaj nista združena v enega, pa je morda v tem, da imata različni vlogi."
Tomcatova domača stran je bila precej obsežna, dobro pa deluje tudi kot spletni strežnik.
- SSL/TLS (šifriranje komunikacij)
- SSI (možnost vstavljanja različnih HTML v HTML)
- Prepisovanje (funkcija za prepisovanje URL)
Apache je zelo zmogljiv spletni strežnik, vendar je veliko funkcij, ki se ne uporabljajo, zato je organizacija Apache Software Foundation morda poskrbela, da lahko Tomcat deluje samostojno brez Apacheja. Vendar je še vedno bolje vključiti Apache, če potrebujete podroben nadzor zahtevkov.
5. povzetek
Opisane so razlike med Apachejem in Tomcatom ter zakaj morata sodelovati.
Mislil sem, da je odgovor na to vprašanje težko razumeti, saj je Tomcat celovit spletni strežnik. Dobro je razmisliti o sodelovanju med Apachejem in Tomcatom, pri čemer je treba upoštevati, da funkcija spletnega strežnika Tomcat ni njegova glavna funkcija (ni specializiran za spletni strežnik).
Hvala, ker ste gledali do konca.