Erinevus Apache'i ja Tomcat'i vahel ja miks nad peavad koos töötama.


Avaldamise kuupäev:1. jaanuar 2021.



INFOMARTION > Erinevus Apache'i ja Tomcat'i vahel ja miks nad peavad koos töötama.

Ülevaade.

Tahaksin kirjeldada Apache'i ja Tomcat'i 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, tahaksin selgitada Apache'i ja Tomcat'i erinevusi ja seda, miks nad peavad koos töötama.

Sisukord

  1. Apache'i ja Tomcat'i ühendamise põhjused
  2. Apache omadused
  3. Tomcati funktsioonid
  4. tasu
  5. kokkuvõte

1. Apache'i ja Tomcat'i ü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 Tomcat'i.

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 Tomcat'i vahel. Sellest on lihtsam aru saada, kui mõtlete Tomcat'i ja DB-serverite mõistes. See võib kõlada ekstreemselt, kuid on võimalik luua rakendus, kasutades ainult Tomcat'i 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 Tomcat'i koostööga seotud "eeliseid" ja "puudusi", kuid siin ei ole tegemist eeliste ja puudustega. Kui neilt küsiti Tomcat'i ja DB serverite ühendamise "eeliste" ja "puuduste" kohta, vastasid nad, et rollid on algul erinevad. Sama kehtib ka Apache'i ja Tomcat'i 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 Tomcat'i 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) Tomcat'i 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?

Tomcat'i 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 Tomcat'i ü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 Tomcat'i poolel, ei ole probleemiks staatiliste lehekülgede paigutamine Tomcat'ile. 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. Tahaksin kirjeldada, 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

Tahaksin selgitada Tomcat'i funktsionaalsust.

3-1. Võimalus dünaamiliselt veebilehti tagastada, kasutades Java't.

Tomcat'i 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 Tomcat'i 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."

Tomcat'i koduleht oli üsna ulatuslik ja see toimib hästi ka veebiserverina.

http://tomcat.apache.org/

  • 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 Tomcat'i 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 Tomcat'i koostööle on hea mõelda, pidades silmas, et Tomcat'i funktsioon veebiserverina ei ole tema põhifunktsioon (ta ei ole spetsialiseerunud veebiserverina).

Aitäh, et vaatasite kuni lõpuni.