Apache HTTP Server vs Tomcat: rollid, pöördproksimine ja millal neid kombineerida
Avaldatud:
Uuendatud:
Artiklid › Apache HTTP Server vs Tomcat: rollid, pöördproksimine ja millal neid kombineerida
Olukord 2026. aastal ja ohutu kasutamine
Järeldus: Apache HTTP Server on üldotstarbeline HTTP-server ja pöördpuhverserver; Tomcat on Java veebikonteiner, millel on oma HTTP-liides. Nad ei vaja üksteist oma olemuselt. Kombineerige need, kui puhverserver pakub konkreetset kasu, nagu tsentraliseeritud TLS, marsruutimine, integreerimine või jagatud servatasand.
Mida õpid
- Kus saavad toimida HTTP-server, puhverserver, Servleti täitmine, staatilised failid, TLS ja marsruutimine.
- Kuidas
mod_proxy_httpvõi mõni muu toetatud konnektor päringud Tomcatile edastab. - Kuidas vältida puhverserveri tasandi lisamist ainult seetõttu, et vanem diagramm sisaldas seda alati.
Kellele artikkel on mõeldud: Java veebimeeskonnad, kes otsustavad Tomcati otsese kokkupuute ja hallatava pöördpuhverserveri arhitektuuri vahel.
2026. aasta seisukoht: algse essee spetsialiseerumismudel on kasulik, kuid „Apache ja Tomcat peavad koostööd tegema” on liiga absoluutne. Valige väikseim arhitektuur, mis vastab turvalisuse, töökindluse, marsruutimise, jälgitavuse ja toimimisnõuetele, ning dokumenteerige usalduspiirid ja edastatud päised.
Ohutusmärkus: Algse artikli käske ja seadistusnäiteid ei ole tänapäevases tootmiskeskkonnas uuesti käivitatud. Enne rakendamist kontrolli toetatud versioone, tee varukoopia ja valmista eraldi testkeskkonnas ette tagasipööramise plaan.
Ametlikud allikad
Ülevaade
Järgnevalt kirjeldatakse Apache'i ja Tomcati erinevusi ja seda, miks nad peavad olema seotud, millele ma ei leidnud rahuldavat vastust, kui olin uus, isegi pärast vanemate küsitlemist ja internetist otsimist. Mõnikord öeldakse, et Apache on veebiserver (teostab staatilist töötlemist) ja Tomcat on servlet-konteiner (teostab dünaamilist töötlemist) (nagu mulle ütles üks vanem kolleeg, kui ma olin uus), kuid Tomcatil on ka veebiserveri funktsioonid, kui seda hoolikalt uurida. Siis võiks arvata, et Tomcat on kõik, mida vajate. See viib lõpuks tagasi küsimuse juurde, miks Apache ja Tomcat peavad olema omavahel seotud. Neile, kes seda teevad, järgnevalt selgitatakse Apache'i ja Tomcati erinevusi ja seda, miks nad peavad koos töötama.
Sisukord
1. Apache'i ja Tomcati ühendamise põhjused
Esimene järeldus, mis tuleb teha, on erinevus rollide spetsialiseerumises. Apache on spetsialiseerunud veebiserveri funktsioonidele, Tomcat aga dünaamilisele töötlemisele Java abil.
Põhjus, miks kirjutatakse, et spetsialiseerumine on erinev, on see, et Tomcatil endal on ka veebiserveri funktsioonid. See võib olla veidi äärmuslik, kuid kui on olemas süsteem, kus Apache ja Tomcat on omavahel seotud, ei ole võimatu realiseerida peaaegu sama süsteemi, kasutades ainult Apache'i ja ainult Tomcati.
1-1. Millised on erinevused eksperditeadmistes?
Rollide spetsialiseerumise erinevusi vaadeldes tundub meile, et seda on raske mõista, sest äkki tehakse võrdlus Apache'i ja Tomcati vahel. Sellest on lihtsam aru saada, kui mõtlete Tomcati ja DB-serverite mõistes. See võib kõlada ekstreemselt, kuid on võimalik luua rakendus, kasutades ainult Tomcati ilma andmebaasiserveri seadistamiseta. Näiteks võiksite hallata kasutajate andmeid xml- või omadusena ja luua rakenduse, mis autentib sisselogimise selle teabe põhjal. Kui aga vaadata üldisi veebisüsteeme, siis tegelikkuses haldavad enamik süsteeme kasutajate andmeid andmebaasis ja suunavad andmeid Tomcatist andmebaasiserverisse. Kui te mõtlete, miks, siis sellepärast, et nii saab rakendusi tõhusamalt arendada.
Mõnikord selgitatakse Apache'i ja Tomcati koostööga seotud "eeliseid" ja "puudusi", kuid siin ei ole tegemist eeliste ja puudustega. Kui neilt küsiti Tomcati ja DB serverite ühendamise "eeliste" ja "puuduste" kohta, vastasid nad, et rollid on algul erinevad. Sama kehtib ka Apache'i ja Tomcati kohta, millel on algselt erinevad rollid.
1-2. Mis on Apache?
Olles maininud, et rollid on erinevad, tahaksin nüüd selgitada, millised on Apache'i ja Tomcati rollid.
Jällegi, Apache on ametlikult tuntud kui Apache HTTP Server. Apache on veebiserver, kuid lühidalt öeldes on tema ülesanne analüüsida päringuid.
Täpsemalt on need järgmised.
- Filtreerimine (taotluste lubamine/keelamine) konkreetsete IP-aadresside puhul
- Ümbersuunamine konkreetsete URL-ide jaoks.
- Konkreetsete URL-ide tagasilükkamine
- Side krüpteerimine SSL-ühendusega
- Protsesside määramine konkreetsetele serveritele taotluse korral
Ülaltoodud on vaid üks näide ja funktsioone on rohkem, kuid lühidalt öeldes on Apache'i (veebiserveri) roll selles, kuidas käsitleda kasutajatelt saadud päringuid.
Tomcati ülesanne on otsustada, millist vastust konkreetsest taotlusest lähtuvalt anda. Mida ei tohiks valesti mõista, on see, et Apache ei keela vastuste loomist. Nii nagu Tomcat töötab andmebaasiserveriga ja säilitab lihtsaid andmeid (nt sõnumite nimekirjad) Tomcati poolel, ei ole Apache'il probleeme dünaamiliste lehekülgede rakendamisega, kui need on lihtsad vastused. Oluline on see, mida saab kõige tõhusamalt ja kenasti hallata.
1-3. Mis on Tomcat?
Tomcati ametlik nimi on "Apache Tomcat". Tomcat on servlet-konteiner, kuid kui selgitada selle rolli lühidalt, siis vastutab see dünaamilise töötlemise eest, mis põhineb päringutel.
Täpsemalt on need järgmised.
- Registreeri andmed taotluse andmete põhjal.
- Looge dünaamilisi lehekülgi ja vastuseid päringuandmete põhjal.
- Määrake kasutaja taotluse teabe põhjal ja looge iga kasutaja jaoks erinev vastus.
Põhimõtteliselt on Tomcati ülesanne tagastada kasutajale leheküljed, mis ei ole fikseeritud leheküljed.
See on veel üks punkt, mida ei tohiks valesti mõista: see ei tähenda, et staatilisi lehekülgi (nt html) ei tohiks Tomcatisse paigutada. Kui meeskonna disainifilosoofia on hallata kogu html-i Tomcati poolel, ei ole probleemiks staatiliste lehekülgede paigutamine Tomcatile. Ka sel juhul on võtmeküsimuseks see, mida saab kõige tõhusamalt ja kenasti hallata.
2. Apache omadused
Tahaksin tutvustada mõningaid Apache'i funktsioone. Apache pakub mitmeid mooduleid (failid, millesse protsessid on pakendatud). Laadige moodul ja kirjeldage selle funktsioonide kasutamiseks vajalikud konfiguratsiooniväärtused. Järgnevalt kirjeldatakse, millised moodulid on saadaval.
2-1. Võimalus töödelda taotlusi samaaegselt.
Moodul "mpm_prefork_module" on asjaomane moodul. On olemas ka "mpm_worker_module" ja "mpm_event_module", kuigi nende funktsionaalsus on peaaegu identne.
Määrake väärtused järgmiselt.
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 250
MaxConnectionsPerChild 0
</IfModule>
Selliselt kirjeldatuna võib serveri käivitamisel käivitada "5" protsessi ja "5" samaaegselt paralleelselt töödelda ning suure hulga päringute korral kuni "250" paralleelselt töödelda.
2-2. Taotluse URL-i ümberkirjutamine
Moodul 'rewrite_module' on asjaomane moodul.
Määrake väärtused järgmiselt.
<IfModule rewrite_module>
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
Kui see on niimoodi öeldud, siis kui päring tuleb http kaudu, siis tagastatakse see kasutajale, et ta küsiks uuesti https kaudu.
2-3. Juurdepääsu kontroll IP-aadressi alusel
See erineb pisut moodulist, kuid kontrollib juurdepääsu IP-aadressi järgi.
Järgmine kirjeldus takistab juurdepääsu muudelt IP-aadressidelt kui "1.0.16.0/20", "1.0.64.0/18" ja "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. Tomcati funktsioonid
Järgnevalt selgitatakse Tomcati funktsionaalsust.
3-1. Võimalus dünaamiliselt veebilehti tagastada, kasutades Java't.
Tomcati eripära seisneb tema "võimekuses tagastada veebilehti dünaamiliselt Java abil". Üldiselt ei loo sa kogu Java-töötlust ise, vaid kasutad seda koos Java-raamatukogudega (Apache'i moodulid), mida teevad erinevad organisatsioonid.
- Dünaamiline vastuste genereerimine kasutaja taotluse parameetrite alusel.
- Logifailide väljastamine konkreetses formaadis.
- Exceli failide loomine ja redigeerimine
- Tehke kindlaks, kas zip-failil on parool.
Selliseid keerulisi protsesse, nagu eespool kirjeldatud, saab saavutada lihtsalt raamatukogu sisestamise ja raamatukogu kutsumise teel. Tomcati roll on teha nende keeruliste protsesside rakendamine lihtsaks.
4. tasu
Oleme selgitanud, et Apache'i ja Tomcati erinevus on "rollide spetsialiseerumine", kuid nii Apache (Apache HTTP Server) kui ka Tomcat (Apache Tomcat) on loodud sama Apache Software Foundationi poolt. Põhjus võib olla selles, et Apache on kirjutatud C keeles ja Tomcat Java keeles, mis on erinevad keeled, kuid põhjus, miks neid ei ühendata üheks, võib olla selles, et nad täidavad erinevaid rolle."
Tomcati koduleht oli üsna ulatuslik ja see toimib hästi ka veebiserverina.
- SSL/TLS (side krüpteerimine)
- SSI (võime manustada erinevat HTML-i HTML-i sees)
- Rewrite (URL-i ümberkirjutamise funktsioon)
Apache on suure jõudlusega veebiserver, kuid seal on palju funktsioone, mida ei kasutata, nii et Apache Software Foundation võib olla teinud seda nii, et Tomcat saab töötada iseseisvalt ilma Apache'ita. Siiski on parem lisada Apache, kui teil on vaja üksikasjalikku kontrolli taotluste üle.
5. kokkuvõte
Kirjeldatakse Apache'i ja Tomcati erinevusi ja seda, miks nad peavad koos töötama.
Ma arvasin, et vastus sellele küsimusele on raskesti mõistetav, sest Tomcat on täisfunktsionaalne veebiserver. Apache'i ja Tomcati koostööle on hea mõelda, pidades silmas, et Tomcati funktsioon veebiserverina ei ole tema põhifunktsioon (ta ei ole spetsialiseerunud veebiserverina).
Need on peamised sammud ja piirangud, mida tuleb arvestada.
■Artiklid
■Profiil
■Kontakt