Apachen ja Tomcatin ero ja miksi niiden on toimittava yhdessä.


Julkaisupäivä:1. tammikuuta 2021.



INFOMARTION > Apachen ja Tomcatin ero ja miksi niiden on toimittava yhdessä.

Yleiskatsaus.

Haluaisin kuvailla Apachen ja Tomcatin välisiä eroja ja sitä, miksi ne on yhdistettävä, mihin en löytänyt tyydyttävää vastausta, kun olin uusi, vaikka kysyin vanhemmiltani ja tutkin asiaa Internetissä. Joskus sanotaan, että Apache on web-palvelin (suorittaa staattista käsittelyä) ja Tomcat on servlet-säiliö (suorittaa dynaamista käsittelyä) (kuten eräs vanhempi kollega kertoi minulle, kun olin uusi työntekijä), mutta Tomcatilla on myös web-palvelintoimintoja, jos sitä tarkastellaan huolellisesti. Sitten luulisi, että Tomcat on kaikki mitä tarvitset. Tämä johtaa lopulta takaisin kysymykseen siitä, miksi Apache ja Tomcat on yhdistettävä toisiinsa. Niille, jotka tuntevat, haluaisin selittää Apachen ja Tomcatin erot ja sen, miksi niiden on toimittava yhdessä.

Sisällysluettelo

  1. Syyt Apachen ja Tomcatin yhdistämiseen
  2. Apachen ominaisuudet
  3. Tomcatin ominaisuudet
  4. vastike
  5. yhteenveto

1. Syyt Apachen ja Tomcatin yhdistämiseen

Ensimmäinen johtopäätös, joka voidaan tehdä, on ero roolien erikoistumisessa. Apache on erikoistunut verkkopalvelintoimintoihin, kun taas Tomcat on erikoistunut dynaamiseen prosessointiin Javan avulla.

Syy siihen, miksi kirjoitan, että erikoistumisessa on eroa, on se, että Tomcatilla itsellään on myös verkkopalvelimen tehtäviä. Tämä saattaa olla hieman äärimmäistä, mutta jos on olemassa järjestelmä, jossa Apache ja Tomcat on liitetty toisiinsa, ei ole mahdotonta toteuttaa lähes samaa järjestelmää käyttämällä vain Apachea ja vain Tomcatia.

1-1. Mitä eroja asiantuntemuksessa on?

Roolien erikoistumisen eroja on mielestämme vaikea ymmärtää, koska vertailu tehdään yhtäkkiä Apachen ja Tomcatin välillä. Asia on helpompi ymmärtää, jos ajattelet Tomcatin ja DB-palvelimien kannalta. Tämä saattaa kuulostaa äärimmäiseltä, mutta on mahdollista luoda sovellus pelkällä Tomcatilla ilman tietokantapalvelimen perustamista. Voit esimerkiksi hallita käyttäjätietoja xml- tai ominaisuustiedoissa ja luoda sovelluksen, joka todentaa kirjautumisen näiden tietojen perusteella. Todellisuudessa, jos tarkastellaan yleisiä web-järjestelmiä, useimmat järjestelmät kuitenkin hallinnoivat käyttäjätietoja tietokannassa ja ohjaavat tietoja Tomcatista tietokantapalvelimelle. Jos mietit, miksi, se johtuu siitä, että sovelluksia voidaan kehittää tehokkaammin tällä tavoin.

Joskus ihmiset selittävät "etuja" ja "haittoja" Apachen ja Tomcatin välisestä yhteistyöstä, mutta tässä ei ole kyse eduista ja haitoista. Kun heiltä kysyttiin Tomcatin ja DB-palvelimien yhdistämisen "eduista" ja "haitoista", he vastasivat, että roolit ovat aluksi erilaisia. Sama pätee Apacheen ja Tomcatiin, joilla on alun perin eri roolit.

1-2. Mikä on Apache?

Mainittuani, että roolit ovat erilaisia, haluaisin nyt selittää, mitkä ovat Apachen ja Tomcatin roolit.

Apache tunnetaan virallisesti nimellä Apache HTTP Server. Apache on verkkopalvelin, mutta lyhyesti sanottuna sen tehtävänä on analysoida pyyntöjä.

Nämä ovat erityisesti.

  • Suodata (sallia/kieltää pyynnöt) tiettyjä IP-osoitteita varten.
  • Uudelleenohjaus tietyille URL-osoitteille.
  • Tiettyjen URL-osoitteiden hylkääminen
  • Viestinnän salaus SSL:llä
  • Prosessien jakaminen tietyille palvelimille pyynnöstä

Yllä oleva on vain yksi esimerkki, ja toimintoja on muitakin, mutta lyhyesti sanottuna Apachen (web-palvelimen) tehtävänä on käsitellä käyttäjiltä vastaanotettuja pyyntöjä.

Tomcatin tehtävänä on päättää, millaisen vastauksen se antaa tietyn pyynnön perusteella. Ei pidä ymmärtää väärin sitä, että Apache ei kiellä vastausten luomista. Aivan kuten Tomcat toimii tietokantapalvelimen kanssa ja ylläpitää yksinkertaisia tietoja (esim. viestiluetteloita) Tomcatin puolella, Apachella ei ole ongelmia toteuttaa dynaamisia sivuja, kunhan ne ovat yksinkertaisia vastauksia. Tärkeintä on, mitä voidaan käsitellä tehokkaimmin ja hallita siististi.

1-3. Mikä on Tomcat?

Tomcatin virallinen nimi on Apache Tomcat. Tomcat on servlet-säiliö, mutta lyhyesti sanottuna sen rooli on se, että se vastaa dynaamisesta käsittelystä pyyntöjen perusteella.

Nämä ovat erityisesti.

  • Rekisteröi tiedot pyynnön tietojen perusteella.
  • Luo dynaamisia sivuja ja vastauksia pyynnön tietojen perusteella.
  • Määritä käyttäjä pyynnön tietojen perusteella ja luo jokaiselle käyttäjälle erilainen vastaus.

Periaatteessa Tomcatin tehtävänä on palauttaa käyttäjälle sivut, jotka eivät ole kiinteitä sivuja.

Tämä on toinen seikka, jota ei pidä ymmärtää väärin: se ei tarkoita sitä, että Tomcatiin ei pitäisi sijoittaa staattisia sivuja (esim. html). Jos tiimin suunnittelufilosofia on hallita kaikkea html-materiaalia Tomcatin puolella, ei ole ongelma sijoittaa staattisia sivuja Tomcatiin. Tässäkin tapauksessa keskeistä on se, mitä voidaan käsitellä tehokkaimmin ja hallita siististi.

2. Apachen ominaisuudet

Haluaisin esitellä joitakin Apachen ominaisuuksia. Apache tarjoaa useita moduuleja (tiedostoja, joihin prosessit pakataan). Lataa moduuli ja kuvaile sen toimintojen käyttämiseksi tarvittavat konfigurointiarvot. Haluaisin kuvata, mitä moduuleja on saatavilla.

2-1. Kyky käsitellä pyyntöjä samanaikaisesti.

Moduuli "mpm_prefork_module" on kyseinen moduuli. On olemassa myös "mpm_worker_module" ja "mpm_event_module", vaikka niiden toiminnallisuus on lähes identtinen.

Aseta arvot seuraavasti.

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

Näin kuvattuna palvelinta käynnistettäessä voidaan käynnistää "5" prosessia ja "5" prosessia voidaan käsitellä rinnakkain samanaikaisesti, ja jopa "250" prosessia voidaan käsitellä rinnakkain, kun pyyntöjä tulee suuri määrä.

2-2. Pyynnön URL-osoitteen uudelleenkirjoittaminen

Moduuli 'rewrite_module' on kyseinen moduuli.

Aseta arvot seuraavasti.

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

Jos tämä ilmoitetaan tällä tavalla, jos pyyntö tulee http-palvelimella, se palautetaan käyttäjälle, jotta hän voi pyytää sitä uudelleen https-palvelimella.

2-3. Pääsynvalvonta IP-osoitteen perusteella

Tämä on hieman erilainen kuin moduuli, mutta se valvoo pääsyä IP-osoitteen perusteella.

Seuraava kuvaus estää pääsyn muista IP-osoitteista kuin "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. Tomcatin ominaisuudet

Haluaisin selittää Tomcatin toiminnallisuuden.

3-1. Kyky palauttaa verkkosivuja dynaamisesti Javan avulla.

Tomcatin erikoisuutena on sen "kyky palauttaa verkkosivuja dynaamisesti Javan avulla". Yleensä et luo kaikkea Java-prosessointia itse, vaan käytät sitä yhdessä eri organisaatioiden tekemien Java-kirjastojen (Apachen moduulien) kanssa.

  • Luo vastauksia dynaamisesti käyttäjän pyyntöparametrien perusteella.
  • Tulostaa lokitiedostot tietyssä muodossa.
  • Excel-tiedostojen luominen ja muokkaaminen
  • Määritä, onko zip-tiedostossa salasana.

Edellä kuvatun kaltaiset monimutkaiset prosessit voidaan toteuttaa yksinkertaisesti lisäämällä kirjasto ja kutsumalla kirjastoa. Tomcatin tehtävänä on helpottaa näiden monimutkaisten prosessien toteuttamista.

4. vastike

Olemme selittäneet, että Apachen ja Tomcatin ero on "roolin erikoistuminen", mutta sekä Apache (Apache HTTP Server) että Tomcat (Apache Tomcat) ovat saman Apache Software Foundationin luomia. Syynä voi olla se, että Apache on kirjoitettu C-kielellä ja Tomcat Javalla, jotka ovat eri kieliä, mutta syy siihen, miksi niitä ei ole yhdistetty yhdeksi, voi olla se, että niillä on eri tehtävät."

Tomcatin kotisivut olivat varsin kattavat, ja se toimii hyvin myös web-palvelimena.

http://tomcat.apache.org/

  • SSL/TLS (viestinnän salaus)
  • SSI (kyky upottaa erilaisia HTML-koodeja HTML:n sisällä)
  • Rewrite (URL-osoitteen uudelleenkirjoitustoiminto)

Apache on suorituskykyinen verkkopalvelin, mutta siinä on monia ominaisuuksia, joita ei käytetä, joten Apache Software Foundation on saattanut tehdä siitä sellaisen, että Tomcat voi toimia itsenäisesti ilman Apachea. On kuitenkin parempi ottaa Apache mukaan, jos tarvitset yksityiskohtaista pyyntöjen valvontaa.

5. yhteenveto

Tässä kuvataan Apachen ja Tomcatin välisiä eroja ja sitä, miksi niiden on toimittava yhdessä.

Luulin, että vastaus tähän kysymykseen oli vaikea ymmärtää, koska Tomcat on monipuolinen verkkopalvelin. Apachen ja Tomcatin välistä yhteistyötä on hyvä pohtia pitäen mielessä, että Tomcatin tehtävä verkkopalvelimena ei ole sen päätehtävä (se ei ole erikoistunut verkkopalvelimeksi).

Kiitos, että katsoitte loppuun asti.